Laravel:如何在没有中间件的情况下检查API路由的用户身份验证('auth:api')



如何检查从控制器访问方法的当前用户是否经过身份验证,有问题的API路由不受任何身份验证中间保护,因为该路由对公众和两个访客用户都是可访问的,我检查了我的请求头,Bearer令牌正在被传递,我正在为我的路由使用react路由器。api驱动程序为passport

公共路线

Route::get('product/list', 'ProductController@index')

尝试了什么

  1. 将默认的AUTH防护更改为api

  2. 尝试显式调用控制器方法中的Auth()->guard('api')->check()

if (Auth()->guard('api')->check()) {
return 'is_favourite';
} else {
return 'unauthenticated';
}
  1. 也这样称它为Auth()->check()
if (Auth()->check()) {
return 'is_favourite';
} else {
return 'unauthenticated';
}

结果

始终'unauthenticated'

预期结果:当在标头中传递承载令牌时,is_favourite的结果;如果未提供承载令牌,则为"未验证"。

我终于让它工作了,试过了,它工作了:

if (auth('api')->check()) {
return 'is_favourite';
} else {
return 'unauthenticated';
}

相关内容

  • 没有找到相关文章

最新更新