【问题标题】:What Need to Pass for Logout Passport Function注销护照功能需要通过什么
【发布时间】:2019-10-15 10:36:23
【问题描述】:

将 Passport 用于访问令牌和刷新令牌。对于注销功能,应该发布/获取什么以及 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. 网址:http://localhost:8000/api/auth/logout???
  2. 应该为这个 URL 发布什么内容?

【问题讨论】:

    标签: laravel token passport.js


    【解决方案1】:

    如果您有 auth 前缀,那么这应该是正确的注销路径。如果没有,请从 url 中删除 auth

    Token 应该存在于 axios headers 中,因为注销路由在 auth:api 中间件下,您将在 logout 中撤销它方法。

    按照评论中的要求编码 sn-ps

    登录用户后,您将令牌添加到 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.网址:localhost:8000/api/auth/logout ??? 2;应该为这个 URL 发布什么?
    • 你试过访问路由吗?您是否遇到任何错误?
    • Route 没有问题。困惑应该为“注销(请求$请求)”发布什么
    • 你不需要传递任何额外的东西。无论如何,这是一个获取请求。只有身份验证令牌需要存在于 axios 标头中。
    【解决方案2】:

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

    您的注销路由受护照保护,因此当调用受 Passport 保护的路由时,您的应用程序的 API 使用者应将其 访问令牌 指定为 Bearer 令牌在 授权标头。

    例如,当使用 Guzzle HTTP 库时:

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

    来自文档laravel passport passing access token

    【讨论】:

      猜你喜欢
      • 2019-12-10
      • 2021-01-06
      • 2019-12-05
      • 2012-05-06
      • 2021-06-24
      • 2017-10-19
      • 2013-05-10
      • 2020-09-03
      • 2018-06-07
      相关资源
      最近更新 更多