Laravel Larvel:如何在没有中间件的情况下检查API路由的用户身份验证(';身份验证:API';)
如何检查从控制器访问方法的当前用户是否经过身份验证, 所讨论的API路由不受任何身份验证中间层的保护,因为该路由对公众和两个来宾用户都是可访问的,我检查了我的请求头。在传递承载令牌时,我使用react路由器进行路由。api驱动程序是Laravel Larvel:如何在没有中间件的情况下检查API路由的用户身份验证(';身份验证:API';),laravel,laravel-7,laravel-passport,laravel-api,Laravel,Laravel 7,Laravel Passport,Laravel Api,如何检查从控制器访问方法的当前用户是否经过身份验证, 所讨论的API路由不受任何身份验证中间层的保护,因为该路由对公众和两个来宾用户都是可访问的,我检查了我的请求头。在传递承载令牌时,我使用react路由器进行路由。api驱动程序是passport 公共路线: Route::get('product/list','ProductController@index) 您尝试过的内容: 将默认身份验证保护更改为api 尝试在控制器方法中显式调用Auth()->guard('api')->check(
passport
公共路线:
Route::get('product/list','ProductController@index)
您尝试过的内容:
api
Auth()->guard('api')->check()
Auth()->check()
“未经验证”
预期结果:
的结果是_favorite
当一个承载令牌在报头中传递时,如果没有提供承载令牌,则为“未经验证”。我最终让它工作,尝试了这个,它工作了:
if (auth('api')->check()) {
return 'is_favourite';
} else {
return 'unauthenticated';
}
Auth::guard('api')->check()
?你确定你在测试请求中传递的承载令牌是正确的吗?@gbalduzzi是的,它被直接用于设置了中间件('Auth:api')
的其他路由。它在laravel 8中工作,我现在可以调用相同的api(在Auth中间件外部),使用和不使用Auth令牌,每种类型的响应不同:)
if (Auth()->check()) {
return 'is_favourite';
} else {
return 'unauthenticated';
}
if (auth('api')->check()) {
return 'is_favourite';
} else {
return 'unauthenticated';
}