🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Vue CLI

Vue CLIは、Vue.jsでアプリケーション開発を行うためのコマンドラインインタフェース(CLI)に基づいた開発ツールです。インタラクティブなプロジェクトの雛形や設定なしで使用できるプロトタイプの作成など、さまざまな機能が用意されています。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Q&A

1回答

3997閲覧

Laravel SanctumのSPA認証について、XSRF-TOKENは取得できるのに後のリクエストで401が返ってきます

asdsdsasfafsdfa

総合スコア11

Vue CLI

Vue CLIは、Vue.jsでアプリケーション開発を行うためのコマンドラインインタフェース(CLI)に基づいた開発ツールです。インタラクティブなプロジェクトの雛形や設定なしで使用できるプロトタイプの作成など、さまざまな機能が用意されています。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

0グッド

0クリップ

投稿2021/02/07 11:00

編集2021/02/07 11:04

お世話になります。
Laravel SanctumのSPA認証について質問があります。
現在laravel 7とvue-cliとaxiosを用いてspa認証アプリを作成しております。
登録とログインは出来て、Auth::attemptも成功するのですが、/userにaxiosから'GET'を送ると401と非認証メッセージが返ってきます。

つまり、/userへのリクエストだけが上手く行きません

localhostで動かしており、vue-cliはlocalhost:8080で
php artisan serveはlocalhost8000で動かしております。

ドメインの設定が間違ってるのかと思い下記のステートフルドメインを8080に変えたりもしてみましたが上手くいきません。
どなたか詳しい方が居られましたらお教えください。よろしくお願いします。

.env SESSION_DOMAIN=localhost SANCTUM_STATEFUL_DOMAINS=localhost:8000
route:list +--------+----------+-----------------+------+------------------------------------------------------------+-------------------------------------------------------------------+ | Domain | Method | URI | Name | Action | Middleware | +--------+----------+-----------------+------+------------------------------------------------------------+-------------------------------------------------------------------+ | | GET|HEAD | / | | Closure | App\Http\Middleware\EncryptCookies | | | | | | | Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse | | | | | | | Illuminate\Session\Middleware\StartSession | | | | | | | Illuminate\View\Middleware\ShareErrorsFromSession | | | | | | | App\Http\Middleware\VerifyCsrfToken | | | | | | | Illuminate\Routing\Middleware\SubstituteBindings | | | GET|HEAD | api/csrf-cookie | | Laravel\Sanctum\Http\Controllers\CsrfCookieController@show | App\Http\Middleware\EncryptCookies | | | | | | | Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse | | | | | | | Illuminate\Session\Middleware\StartSession | | | | | | | Illuminate\View\Middleware\ShareErrorsFromSession | | | | | | | App\Http\Middleware\VerifyCsrfToken | | | | | | | Illuminate\Routing\Middleware\SubstituteBindings | | | POST | api/login | | App\Http\Controllers\LoginController@login | Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful | | | | | | | Illuminate\Routing\Middleware\ThrottleRequests:60,1 | | | | | | | Illuminate\Routing\Middleware\SubstituteBindings | | | POST | api/logout | | App\Http\Controllers\LoginController@logout | Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful | | | | | | | Illuminate\Routing\Middleware\ThrottleRequests:60,1 | | | | | | | Illuminate\Routing\Middleware\SubstituteBindings | | | POST | api/register | | App\Http\Controllers\RegisterController@register | Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful | | | | | | | Illuminate\Routing\Middleware\ThrottleRequests:60,1 | | | | | | | Illuminate\Routing\Middleware\SubstituteBindings | | | GET|HEAD | api/user | | Closure | Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful | | | | | | | App\Http\Middleware\Authenticate:sanctum | | | | | | | Illuminate\Routing\Middleware\ThrottleRequests:60,1 | | | | | | | Illuminate\Routing\Middleware\SubstituteBindings | +--------+----------+-----------------+------+------------------------------------------------------------+-------------------------------------------------------------------+
```axios import axios from "axios"; let axs = axios.create({ baseURL: "http://localhost:8000/api" }); axs.defaults.withCredentials=true; export default axs;

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

masapu

2022/03/28 16:16

こんにちわ。 私もsanctum使っていてまったく同じ現象に出くわしていて困っております。 もし自己解決済みでしたら解決方法教えていただけますか。 ちなみに私の場合は完全にランダムでセッション無くなるため手がかりすら無くて困ってます。
guest

回答1

0

すいません。追記に記載してしまいましたが、
私のケースでは以下の内容で解決しました。
質問者様の内容にそぐわない可能性もありますが、書き込みさせてください。

結論から申しますと、以下のURLの通り、
kernel.php の middleware に 'StartSession::class' 追加で解消いたしました。

https://stackoverflow.com/questions/66048023/laravel-8-sanctum-spa-auth-session-store-not-set-on-request

React + Laravel8 + Sanctum で開発行っておりまして、
同じく axios で post 投げていたのですが、ランダムな操作で401エラーが返却され、
ヘッダを確認すると XSRF-TOKEN はセットされていて、laravel_session が消えておりました。

投稿2022/03/29 07:07

masapu

総合スコア29

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問