现在,当我要注销用户时,我会向我的API发送一个发布请求(带有Bearer令牌)
答案 0 :(得分:4)
<li class="selected_li"> <span> some text </span> </li>
UserApiController.php
Route::group(['middleware' => ['auth:api']], function () {
Route::post('/logout', 'UserApiController@logout');
});
答案 1 :(得分:0)
这里的答案都很棒。如果revoke()不起作用,即
Auth::user()->token()->revoke();
不起作用,不能使用,
public function logout(Request $request)
{
$response = self::HTTP_CREATED;
$user= $request->user();
unset($user->api_token);
$user->save();
return response()->json([
'response' => 'true',
'result' => '',
'message' => 'User logged out'
], $response);
}
目标是从上面的代码手动执行的操作中删除令牌。
答案 2 :(得分:0)
如果您未在api路由中使用中间件,也已使用laravel 7.24进行了测试。
api.php
Route::post('/logout', 'LoginController@logout');
使用api-guard(=护照),然后使用标准的laravel护照“ revokeAccessToken”方法。
public function logout ()
{
$tokenRepository = app('Laravel\Passport\TokenRepository');
$user = auth('api')->user();
if ($user) {
$tokenRepository->revokeAccessToken($user->token()->id);
return 'logged out';
} else {
return 'already logged out';
}
}