【问题标题】:Laravel Passport API: Retrieve Authenticated TokenLaravel Passport API:检索经过身份验证的令牌
【发布时间】:2018-03-22 06:28:30
【问题描述】:

情况

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

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

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

问题

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

背景

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

【问题讨论】:

  • 您应该能够在oauth_access_tokens 表中查找tokenuser_idclient_id。也看看这个讨论:laracasts.com/discuss/channels/laravel/passport-rest-makeauth
  • 您可以使用 Auth::user()->token() 函数来获取令牌模型。这是“令牌扩展模型”类的对象,因此您应该能够像使用任何其他模型一样使用它。
  • @ElChupacabra 是的,行得通!谢谢!你能把这个作为问题的答案吗?

标签: php laravel api token laravel-passport


【解决方案1】:

你可以使用:

Auth::user()->token()

获取token模型的函数。这是“令牌扩展模型”类的对象,因此您应该能够像使用任何其他模型一样使用它。

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

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();

【讨论】:

  • 这个答案很好,但你能告诉我你是如何将 OauthAccessToken 模型链接到表的,还是你可以使用的特征?谢谢你!
  • 如果类名与数据库表完全相同,则自动链接。唯一的区别是在 php 中你使用 CamelCase 而不是下划线。
  • 您好,感谢您提出一个简短的问题,所以我如何获得实际令牌这是我的结果``` [ { "id": 825786976, "user_id": 1, "client_id": 1、“名称”:“管理员”、“范围”:“[]”、“已撤销”:0、“created_at”:“2022-02-26T16:58:28.000000Z”、“updated_at”:“2022-02 -26T16:58:28.000000Z", "expires_at": "2023-02-26 16:58:28" } ]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-27
  • 2017-02-11
  • 2020-11-04
  • 2019-05-21
  • 2019-01-22
  • 2018-05-04
相关资源
最近更新 更多