我如何检查当前从控制器访问方法的用户是否已通过身份验证,
有问题的API路由不受任何身份验证中间人的保护,因为该路由可供公共和两个来宾用户访问,所以我检查了我的请求标头(传递了Bearer令牌),正在为我的路由使用React路由器。并且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
的结果,当在头中传递了承载令牌时,如果没有提供承载令牌,则为“未经身份验证”。
答案 0 :(得分:1)
我最终使它开始工作,尝试了一下,就成功了:
if (auth('api')->check()) {
return 'is_favourite';
} else {
return 'unauthenticated';
}