laravel passport是否在承载令牌中序列化整个用户对象?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了laravel passport是否在承载令牌中序列化整个用户对象?相关的知识,希望对你有一定的参考价值。
我正在使用带有护照和jensseger mongodb的laravel来创建API。一切运作良好,但我注意到我从护照上获得的持票人代币很长。我的问题是,护照将整个用户对象存储在持有者令牌中,或者如果Auth :: user仅通过id从db获取用户....
我有一个模特:
class User extends \Jenssegers\Mongodb\Eloquent\Model implements
AuthenticatableContract,
AuthorizableContract,
CanResetPasswordContract
{
use Authenticatable, Authorizable, CanResetPassword, Notifiable, HasApiTokens;
protected $collection = 'db.users';
protected $fillable = ['name','phone','email' ...];
......
}
然后我使用$user->createToken('....')->accessToken
在登录时生成令牌。
然后我使用Auth::user()
从内部获取令牌的当前用户。这一切都有效,但持票人代币很长。
令牌很长,因为它们已经被base64编码。
这是我在另一个SO问题上找到的随机令牌:
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjgzYmQ5NmNkYWE1MWZhMTJlMzQ4OTEzYWNjOGQwNmMzMjE2YzQ0N2U3ZmQyOWQyYThiNmY1YjUwMzAzZWFlOGU4ZjE4ZjNhM2M4OGE4OGVkIn0.eyJhdWQiOiIxIiwianRpIjoiODNiZDk2Y2RhYTUxZmExMmUzNDg5MTNhY2M4ZDA2YzMyMTZjNDQ3ZTdmZDI5ZDJhOGI2ZjViNTAzMDNlYWU4ZThmMThmM2EzYzg4YTg4ZWQiLCJpYXQiOjE1MzY5NjEyMjgsIm5iZiI6MTUzNjk2MTIyOCwiZXhwIjoxNTY4NDk3MjI4LCJzdWIiOiI1Iiwic2NvcGVzIjpbXX0.Ev1S4MhkDwdNPMhFIbSNdTUnlK-C4CRiUIHEhBulkjy4rTCkAGVWX01DsAdkGa_SP2o7d9M5Yw71m1yo3FG1eNZriJHbeKfLVz78MaWrX9daITmPhgh8sGaF9JlASU0I3QmVO-hnX57QSFTvDfzBjS3ApDx-CUhPV9M7ycljzBoYwiQZHloBpxHVqaavN-9CQQEuaZf8MhRJ-dg2BPoEVHp5lUtsjtZUll4hztvkJO4uz_hth0bo_i7l7pyrcS811BPK1iLAWlmsjdpUziFxCEpVsVVBpO5I8N5SLwgfiEsfM9PuMQua4kkt7whDUzitPQCaPR6TaBifFZfy1Hi37TYenK3aGb8VrX5HbU6HmYeYeIx8lFcugRwktVtuAURoRSWrlAkcfyMRM1nraSBWO3XVLc8nDNtnx6UG3yEjTLeqrUamy43Y5a4wszLnE9iXiPVA0Ip-_Y7gKsL9uE9h523YtIO1nGCJVSg8jr7T1XKWGaTFssJf9E9T5rAmdIu-hbW9Tm2NVL1z0dINva_F6SLmUqWQ0c3Wl1mrHmH3VqEBFP5-FUWzw2hFj1agwLe_933i5UdLl1EHwUqFpr_cVjVj952Do8LzEAuL 2LLfZo82kPTP-h5jdWaWmoH-tJ_xXuWoRD5Y9nCFm_6-zJJpR3kcgz3jLMUCu_VAgNWTtw0
将该令牌复制并粘贴到here中。
头
{
"typ": "JWT",
"alg": "RS256",
"jti":"83bd96cdaa51fa12e348913acc8d06c3216c447e7fd29d2a8b6f5b50303eae8e8f18f3a3c88a88ed"
}
有效载荷
{
"aud": "1",
"jti": "83bd96cdaa51fa12e348913acc8d06c3216c447e7fd29d2a8b6f5b50303eae8e8f18f3a3c88a88ed",
"iat": 1536961228,
"nbf": 1536961228,
"exp": 1568497228,
"sub": "5",
"scopes": []
}
有效载荷有你的问题的答案,这是sub
- 主题 - 索赔。这表示经过身份验证的实体ID。所以用户ID 5。
以上是关于laravel passport是否在承载令牌中序列化整个用户对象?的主要内容,如果未能解决你的问题,请参考以下文章
Laravel Passport:API 的令牌是不是存储在服务器上,存储在哪里?
Laravel Passport API:检索经过身份验证的令牌