注销护照功能需要通过什么

时间:2019-10-15 10:36:23

标签: laravel token passport.js

使用通行证获取访问令牌和刷新令牌。对于注销功能,应该发布/获取什么,URL是什么?

API路线:

 Route::group([
      'middleware' => 'auth:api'
    ], function() {
        Route::get('logout', 'api\LoginController@logout');
    });
public function logout(Request $request)
    {
        $request->user()->token()->revoke();
        return $this->loggedOut($request);
    }
  1. URL:http://localhost:8000/api/auth/logout ???
  2. 该URL应该发布什么?

2 个答案:

答案 0 :(得分:0)

如果您具有前缀 auth ,则该前缀应该是正确的注销路径。如果不是,请从网址中删除 auth

令牌应该出现在 axios标头中,因为退出路由位于 auth:api 中间件下,因此您将在退出时将其撤消方法。

评论中要求的代码段

登录用户后,您将令牌添加到axios标头

axios.defaults.headers['Authorization']='Bearer ' + token;
axios.defaults.headers['Content-Type']='application/json';

发出注销请求时

axios.get('/api/auth/logout')
    .then(response => {
        localStorage.removeItem("token");
        localStorage.removeItem("token_type");
        delete axios.defaults.headers['Authorization'];
    }).catch(error=> {
});

在控制器的注销方法中,您撤消了用户令牌

$request->user()->token()->revoke();
return response()->json([
   'message' => 'Successfully logged out'
]);

答案 1 :(得分:0)

您必须在成功登录后获得的access_token标头中传递Authorization

您的登出路线受护照保护,因此,当调用受Passport保护的路线时,您的应用程序的API使用者应在<<>中将其访问令牌指定为 Bearer 令牌。他们请求的strong>授权标头。

例如,在使用Guzzle HTTP库时:

$response = $client->request('GET', '/api/logout', [
    'headers' => [
        'Accept' => 'application/json',
        'Authorization' => 'Bearer '.$accessToken,
    ],
]);

来自文档laravel passport passing access token