Laravel 5.8 通行证注销方法(未验证)
Laravel 5.8 passport logout method ( Unauthenticated )
当我调用路由 /api/logout
时,我得到 Unauthenticated
,我已经从我的 /api/login
方法中获得了令牌,当我尝试使用相同 [=] 的 运行 演示请求时也是如此17=] 效果很好
- 我试过像演示这样的请求:
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
路线(在 api.php 中,前缀为 api)
Route::middleware('auth:api')->post('/logout', 'PassportAuthController@logout')->name('api.auth.logout');
简单注销功能
public function logout( )
{
auth()->user()->tokens->each(function ($token, $key) {
$token->delete();
});
return response()->json('Logged out', 200);
}
您确定您的 Auth 是正确的吗,因为您在路由中间件中使用了 Auth API。
而不是auth()->user()->tokens
使用auth('api')->user()->tokens
auth()
是一个辅助函数,您不能在其中传递您使用的身份验证参数
特别是如果您使用多个身份验证系统,那么您应该确定哪个身份验证?
因此请确保您从 api 身份验证注销而不是默认身份验证写入
public function logout( )
{
auth('api')->user()->tokens->each(function ($token, $key) {
$token->delete();
});
return response()->json('Logged out', 200);
}
当我调用路由 /api/logout
时,我得到 Unauthenticated
,我已经从我的 /api/login
方法中获得了令牌,当我尝试使用相同 [=] 的 运行 演示请求时也是如此17=] 效果很好
- 我试过像演示这样的请求:
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
路线(在 api.php 中,前缀为 api)
Route::middleware('auth:api')->post('/logout', 'PassportAuthController@logout')->name('api.auth.logout');
简单注销功能
public function logout( )
{
auth()->user()->tokens->each(function ($token, $key) {
$token->delete();
});
return response()->json('Logged out', 200);
}
您确定您的 Auth 是正确的吗,因为您在路由中间件中使用了 Auth API。
而不是auth()->user()->tokens
使用auth('api')->user()->tokens
auth()
是一个辅助函数,您不能在其中传递您使用的身份验证参数
特别是如果您使用多个身份验证系统,那么您应该确定哪个身份验证?
因此请确保您从 api 身份验证注销而不是默认身份验证写入
public function logout( )
{
auth('api')->user()->tokens->each(function ($token, $key) {
$token->delete();
});
return response()->json('Logged out', 200);
}