Translate: Laravel: 通过用户ID获取 Sanctum 令牌
P粉982054449
P粉982054449 2023-07-30 15:35:48
[PHP讨论组]

我正在尝试根据用户ID获取用户的Sanctum令牌,但是我无法成功。该应用是使用React Native作为前端和Laravel作为后端的单页应用。

我尝试了以下方法,但是得到了一个空对象。


$user = User::find($request['user_id']);

$tokens = $user->tokens();

这是我在用户注册时创建令牌的方法:

$user = new User();
$user->name = 'Name';
$user->save();
        
$token = $user->createToken($request->input('device_name'))->plainTextToken;

$user = $user->fresh();

是否正确地创建了令牌?在使用createToken后,是否需要再次保存?

P粉982054449
P粉982054449

全部回复(1)
P粉638343995

要获取令牌,你需要添加->get()函数。

正确的代码是:


$tokens = $user->tokens()->get();

这是因为$user->tokens()返回一个查询构建器对象,所以你可以追加所有的查询构建器函数来过滤、排序和选择令牌。

例如:


$user->tokens()->orderBy('created_at', 'DESC')->first();

请注意,令牌存储在personal_access_tokens表中,外键是tokenable_id。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号