【发布时间】:2021-02-03 09:39:54
【问题描述】:
如何检查从控制器访问方法的当前用户是否经过身份验证,
有问题的 API 路由不受任何身份验证中间体的保护,因为公共和两个来宾用户都可以访问该路由,我检查了我的请求标头,Bearer 令牌正在传递,我正在为我的路由使用反应路由器。 api驱动是passport
公共路线:
Route::get('product/list', 'ProductController@index')
尝试了什么:
-
将默认的 AUTH Guard 更改为
api。 -
尝试在控制器方法中显式调用
Auth()->guard('api')->check()。
if (Auth()->guard('api')->check()) {
return 'is_favourite';
} else {
return 'unauthenticated';
}
- 也这样称呼它
Auth()->check()
if (Auth()->check()) {
return 'is_favourite';
} else {
return 'unauthenticated';
}
结果:
总是'unauthenticated'
预期结果:在标头中传递承载令牌时is_favourite 的结果,如果未提供承载令牌,则为“未经身份验证”。
【问题讨论】:
-
Auth::guard('api')->check()? -
您确定您在测试请求中传递的 Bearer 令牌是正确的吗?
-
@gbalduzzi 是的,它被用于其他直接设置了
middleware('auth:api')的路由
标签: laravel laravel-7 laravel-passport laravel-api