如何解决Laravel:如何在没有中间件的情况下检查用户身份验证的API路由'auth:api'
我如何检查当前从控制器访问方法的用户是否已通过身份验证,
有问题的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
的结果,当在头中传递了承载令牌时,如果没有提供承载令牌,则为“未经身份验证”。
解决方法
我最终使它开始工作,尝试了一下,就成功了:
if (auth('api')->check()) {
return 'is_favourite';
} else {
return 'unauthenticated';
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。