5

Laravel sanctum を実装しようとしていますが、Laravel Sanctum のドキュメントに記載されているすべての手順に従っているにもかかわらず、このエラー「CSRF トークンの不一致」が発生しています。

cors.php設定ファイル

'paths' => [
    'api/*',
    'login',
    'logout',
    'sanctum/csrf-cookie'
],
'supports_credentials' => true,

カーネルはドキュメントに従って追加されるため、ここにコードを追加してスペースを無駄にしません

.envファイル

SESSION_DRIVER=cookie
SESSION_DOMAIN=localhost
SANCTUM_STATEFUL_DOMAINS=localhost

ここでフロントエンドとしてAngular 9を使用しています

これは私のインターセプターです

request = request.clone({
    withCredentials: true
})

これは、Laravelにリクエストを送信する方法です

this.http.get<any>(url('sanctum/csrf-cookie')).subscribe(() => {
     this.http.post<any>(url('login'), { this.username, this.password })
         .subscribe(success => console.log(success), error => console.log(error))
})

最初のルートがヒットすると、Cookie の作成を確認できますが、問題は 2 番目のルート ('/login') にあります。

4

5 に答える 5

0

私の場合も同様の問題がありますが、この問題を抱えているのは一部のユーザーだけです。configフォルダーの下のsession.phpファイルでSESSION_DOMAINをに変更することで問題を解決しました。.localhost

于 2022-02-09T11:09:18.420 に答える