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

Laravel Passport API: Retrieve Authenticated Token

情况

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

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

身份验证有效,我可以通过 Auth::User()

检索用户

问题

如何查看使用了哪个令牌?

背景

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

您可以使用:

Auth::user()->token()

获取代币模型的函数。这是 class "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();