2017-10-10 113 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();