検索

ホームページ  >  に質問  >  本文

Sanctum でオプションのログインを使用してユーザーのルーティングを設定する

<p>Sanctum はミドルウェア Auth:sanctum を共有しており、機能します。このコードを見てください: </p> <pre class="brush:php;toolbar:false;">Route::middleware('auth:sanctum')->group(function () { Route::post('/profile', [TestController::class, 'test']); });</pre> <p>そしてコントローラーメソッド: </p> <pre class="brush:php;toolbar:false;">パブリック関数 test() { if (Auth::check()) { 「ユーザー」を返します。 } それ以外 { 「ゲスト」を返します。 } }</pre> <p>問題は、ルートで「auth:sanctum」ミドルウェアを使用している場合、ログインしているユーザーに対してはすべて正常に動作しますが、ゲストに対しては「Unauthorized」エラーが発生することです。このミドルウェアを使用しないと、認証が正しく機能せず、ログインしているかどうかが認識されません (常に「Guest」が返されます)。この問題はどうすれば解決できますか?ログイン時にユーザーを表示したいのですが、それ以外の場合は「ゲスト」を表示する必要があります。 </p>
P粉741678385P粉741678385466日前505

全員に返信(1)返信します

  • P粉517814372

    P粉5178143722023-08-07 09:40:16

    ユーザーが認証に Sanctum を使用している場合は、auth('sanctum')->check() を使用してみてください。

    返事
    0
  • キャンセル返事