Php 如何在api中注销?在拉威尔使用护照
现在,当我想注销我的用户时,我向我的API发送一个post请求(带有承载令牌) UserApiController.phpPhp 如何在api中注销?在拉威尔使用护照,php,laravel,Php,Laravel,现在,当我想注销我的用户时,我向我的API发送一个post请求(带有承载令牌) UserApiController.php public function logout(){ if (Auth::check()) { Auth::user()->token()->revoke(); return response()->json(['success' =>'logout_success'],200); }else{
public function logout(){
if (Auth::check()) {
Auth::user()->token()->revoke();
return response()->json(['success' =>'logout_success'],200);
}else{
return response()->json(['error' =>'api.something_went_wrong'], 500);
}
}
这里的答案都很好。如果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);
}
目标是从表中删除令牌,上面的代码会手动执行此操作。如果在api路由中不使用中间件,也会使用laravel 7.24进行测试: api.php
Route::post('/logout', 'LoginController@logout');
使用api guard(=passport),然后使用标准的laravel passport“revokeAccessToken”方法
更改承载令牌值您可以尝试:您可以使用承载令牌创建get request for logout方法。并撤销该令牌。可能是的副本
Route::post('/logout', 'LoginController@logout');
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';
}
}