Laravel Passport API:检索经过身份验证的令牌
Posted
技术标签:
【中文标题】Laravel Passport API:检索经过身份验证的令牌【英文标题】:Laravel Passport API: Retrieve Authenticated Token 【发布时间】: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
表中查找token
、user_id
和client_id
。也看看这个讨论:laracasts.com/discuss/channels/laravel/passport-rest-makeauth
您可以使用 Auth::user()->token() 函数来获取令牌模型。这是“令牌扩展模型”类的对象,因此您应该能够像使用任何其他模型一样使用它。
@ElChupacabra 是的,行得通!谢谢!你能把这个作为问题的答案吗?
【参考方案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" ]以上是关于Laravel Passport API:检索经过身份验证的令牌的主要内容,如果未能解决你的问题,请参考以下文章
使用 Laravel Passport 获取经过身份验证的用户并授予密码
具有正常设计的 Passport Laravel Rest API Auth
使用 Laravel Lumen + Passport 获取经过身份验证的用户时出现问题
laravel Passport - 创建 REST API 用户认证以及Dingo/Api v2.0+Passport实现api认证
php 使用Passport进行Laravel REST API身份验证:https://www.cloudways.com/blog/rest-api-laravel-passport-authen