Laravel Passport API:检索经过身份验证的令牌

Pau*_*ans 5 php api token laravel laravel-passport

情况

我正在使用Laravel Passport API通过个人访问令牌在Laravel和外部"代理"之间进行通信:https://laravel.com/docs/5.5/passport#personal-access-tokens

您可以为每个用户创建多个令牌.

身份验证工作,我可以通过检索用户 Auth::User()

如何查看使用哪个令牌?

背景

我想为同一个用户使用不同的"代理"使用不同的令牌,我需要知道使用哪个令牌来查看谁在连接.

ElC*_*bra 7

您可以使用:

Auth::user()->token()
Run Code Online (Sandbox Code Playgroud)

函数获取令牌模型.这是类"Token extends Model"的对象,因此您应该能够像任何其他模型一样使用它.

另外在我的项目中我也有这个模型:

namespace App;

use Illuminate\Database\Eloquent\Model;

class OauthAccessToken extends Model
{
    //
}
Run Code Online (Sandbox Code Playgroud)

和关系:

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

所以我可以简单地访问所有令牌,例如删除它们:

Auth::user()->accessTokens()->delete();
Run Code Online (Sandbox Code Playgroud)