2017-10-10 73 views
1

形勢

我使用Laravel護照API Laravel和外部的「代理人」之間的通信通過個人訪問令牌:https://laravel.com/docs/5.5/passport#personal-access-tokensLaravel護照API:獲取認證的令牌

你可以爲每個用戶創建多個令牌。

認證工作,我可以通過Auth::User()

問題

如何檢查使用哪個令牌獲取用戶?

背景

我要使用不同的「代理人」不同的令牌相同的用戶,我需要知道哪些令牌用於看到誰在連接。

+0

您應該能夠在'oauth_access_tokens'表中查找'token','user_id'和'client_id'。看看這個討論:https://laracasts.com/discuss/channels/laravel/passport-rest-makeauth –

+0

您可以使用Auth :: user() - > token()函數來獲取令牌模型。這是類「Token extends Model」的對象,因此您應該可以像使用其他任何模型一樣使用它。 – ElChupacabra

+0

@ElChupacabra是的工作!謝謝!你能把這個問題作爲答案嗎? –

回答

1

您可以使用:

Auth::user()->token() 

函數來得到令牌模型。這是類「Token extends Model」的對象,因此您應該可以像使用其他任何模型一樣使用它。

另外在項目中,我也有這種模式:

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class OauthAccessToken extends Model 
{ 
    // 
} 

和關係:

class User extends Authenticatable 
{ 
    //... 
    public function accessTokens() 
    { 
     return $this->hasMany('App\OauthAccessToken'); 
    } 
} 

所以我可以簡單地訪問所有令牌和例如刪除:

Auth::user()->accessTokens()->delete();