Vue + Laravel Sanctum で CSRF トークンの不一致による 419 エラーが発生する
P粉237029457
P粉237029457 2023-08-24 22:17:54
0
2
657
<p>「CSRF トークンが一致しません」というエラー メッセージとともに「419 (不明なステータス)」エラーを受け取りました。</p> <p>POST http://127.0.0.1:8000/login 419 (不明ステータス)</p> <p>CSRF トークンが一致しません。</p> <p>Laravel サービス务器:http://127.0.0.1:8000</p> <p>Vue サービス务器:http://localhost:8080</p> <p>应用程序/Http/Kernel.php</p> <pre class="lang-php prettyprint-override"><code>'api' => [ \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class, 'スロットル:API', \Illuminate\Routing\Middleware\SubstituteBindings::class、 ]、 </code></pre> <p>应用程序/model/User.php</p> <pre class="lang-php prettyprint-override"><code><?php 名前空間 App\Models; Illuminate\Database\Eloquent\Factories\HasFactory を使用します。 Illuminate\Notifications\Notifiable を使用します。 Laravel\Sanctum\HasApiTokens を使用します。 クラス ユーザーは Authenticatable を拡張します { HasApiTokens、HasFactory、Notifiable を使用します。 //... } </code></pre> <p>配置/cors.php</p> <pre class="lang-php prettyprint-override"><code><?php 戻る [ 'パス' => [ 'api/*', 'sanctum/csrf-cookie', '登録する'、 'ログイン'、 ]、 'allowed_methods' => ['*']、 'allowed_origins' => ['*']、 'allowed_origins_patterns' => []、 'allowed_headers' => ['*']、 'exused_headers' => []、 'max_age' => 0、 'supports_credentials' =>真実、 ]; </code></pre> <p>.env</p> <pre class="brush:php;toolbar:false;">SESSION_DRIVER=cookie SESSION_DOMAIN=ローカルホスト SANCTUM_STATEFUL_DOMAINS=localhost:8080</pre> <p>src/main.js</p> <pre class="lang-js prettyprint-override"><code>axios.interceptors.request.use((config) => { config.baseURL = 'http://127.0.0.1:8000' config.withCredentials = true 構成を返す }) </code></pre> <p>src/views/auth/Login.vue</p> <pre class="lang-js prettyprint-override"><code>「axios」から axios をインポートします import { reactive } から '@vue/reactivity'; デフォルトのエクスポート { 設定() { const 資格情報 = リアクティブ({ Eメール: ''、 パスワード: ''、 }) const login = async () => { axios.get('/sanctum/csrf-cookie').then( async () => { let response = await axios.post('/login', credential) console.log(応答); }); } return { ログイン、認証情報 } } }; </code></pre></p>
P粉237029457
P粉237029457

全員に返信(2)
P粉073857911

これと同じ問題で困っています。何度か検索した結果、このページを見つけました。考えられる提案された解決策を確認した後、

を変更しました リーリー ###のために### リーリー

それなら大丈夫です!うまくいきます! !

いいねを押す +0
P粉908643611

SANCTUM_STATEFUL_DOMAINSlocalhost:8080 に設定しましたが、コードの残りの部分では、ポート 8080 ではなくポート 8000 を使用していることが示されています。 8000に変更すれば大丈夫です。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート