Translate: Laravel: 通过用户ID获取 Sanctum 令牌
P粉982054449
2023-07-30 15:35:48
<p>我正在尝试根据用户ID获取用户的Sanctum令牌,但是我无法成功。该应用是使用React Native作为前端和Laravel作为后端的单页应用。</p><p>我尝试了以下方法,但是得到了一个空对象。</p><p><br /></p>
<pre class="brush:php;toolbar:false;">$user = User::find($request['user_id']);
$tokens = $user->tokens();</pre>
<p>这是我在用户注册时创建令牌的方法:</p>
<pre class="brush:php;toolbar:false;">$user = new User();
$user->name = 'Name';
$user->save();
$token = $user->createToken($request->input('device_name'))->plainTextToken;
$user = $user->fresh();</pre>
<p>是否正确地创建了令牌?在使用createToken后,是否需要再次保存?</p>
要获取令牌,你需要添加->get()函数。
正确的代码是:
这是因为$user->tokens()返回一个查询构建器对象,所以你可以追加所有的查询构建器函数来过滤、排序和选择令牌。
例如:
请注意,令牌存储在personal_access_tokens表中,外键是tokenable_id。