搜尋

首頁  >  問答  >  主體

Translate: Laravel: 透過使用者ID取得 Sanctum 令牌

<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>
P粉982054449P粉982054449568 天前609

全部回覆(1)我來回復

  • P粉638343995

    P粉6383439952023-07-31 09:03:30

    要取得令牌,你需要加入->get()函數。

    正確的程式碼是:


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

    這是因為$user->tokens()傳回一個查詢建構器對象,所以你可以追加所有的查詢建構器函數來過濾、排序和選擇令牌。

    例如:


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

    請注意,令牌儲存在personal_access_tokens表中,外鍵是tokenable_id。

    回覆
    0
  • 取消回覆