2017-04-10 34 views
9

我目前使用2个项目。 1个前端(使用laravel后端与API进行通信)和另一个laravel项目(API)。如何使用laravel Passport从API注销用户

现在我使用Laravel Passport对用户进行身份验证,并确保每个API调用都是授权调用。

现在,当我想退出我的用户,我发送POST请求我的API(与承载令牌),并尝试登录他出去的API(和清晰的会话,饼干,...)

然后在客户端上,我也刷新我的会话,以便不再知道令牌。现在,当我回到登录页面时,它会自动登录我的用户。 (或者我的用户只是仍然登录)。

有人可以解释我如何使用Laravel护照正确注销用户吗?

在此先感谢。

+0

你可以看到注销后的HTTP标头的任何令牌注销? –

回答

7

你需要通过创建一个新的模型像OauthAccessToken

  1. 运行以下命令:php artisan make:model OauthAccessToken创建模型,以从数据库中删除表oauth_access_tokens 令牌,你可以做。

  2. 然后创建User模型和新的创造OauthAccessToken模型之间的关系,在User.php加:

    public function AauthAcessToken(){ 
        return $this->hasMany('\App\OauthAccessToken'); 
    } 
    
  3. 在UserController.php

    ,创造注销一个新的功能:

    public function logoutApi() 
    { 
        if (Auth::check()) { 
         Auth::user()->AauthAcessToken()->delete(); 
        } 
    } 
    
  4. 在api.php路由器中,创建新路由:

    Route::post('logout','[email protected]'); 
    
  5. 现在,您可以通过调用张贴到URL /api/logout
+0

如何处理刷新令牌? – QuietSeditionist