現在、トップ レベル ドメイン (mydomain.com) に API があり、サブドメイン (spa.mydomain.com) に SPA がある Web アプリケーションに取り組んでいます。私が追加したSPAでは、
axios.defaults.withCredentials = true
ログインするには、次のコードを実行します。
axios.get('/sanctum/csrf-cookie').then(response => {
axios.post('/login', {email: this.email, password: this.password}).then(response => {
this.$router.push({ name: 'Account' });
});
});
get リクエストは予想どおり 204 で応答し、ログインへの post リクエストも正常に応答します。この時点でリダイレクトされ、別の GET が /api/users/me に送信され、この時点でサーバーは 401 無許可応答で応答します。
ログインできればすべてが期待どおりに機能.env
しているように見えると思いましたが、残念ながらそうではありませんでした.
SESSION_DRIVER=cookie
SESSION_LIFETIME=120
SESSION_DOMAIN=.mydomain.com
SANCTUM_STATEFUL_DOMAINS=spa.mydomain.com
私のリクエストヘッダーは次のようになります。
Accept: application/json, text/plain, */*
Accept-Encoding: gzip, deflate
Accept-Language: en-GB,en-US;q=0.9,en;q=0.8
Connection: keep-alive
Cookie: XSRF-TOKEN=eyJpdiI6InZDRTAvenNlRGhwdVNzY2p5VUFQeFE9PSIsInZhbHVlIjoiVzBLT0wyNTI2Vk5la3hiQ1M1TXpRU2pRQ3pXeGk1Nkc1eW5QN0F5ZjNFUmdIVmlaWGNqdXZVcU9UYUNVTzhXbiIsIm1hYyI6IjJmMmIyMjc4MzNkODA4ZDdlZjRhZTJhM2RlMTQ5NDg1MWM2MjdhMzdkMTFjZGNiMzdkMDM3YjNjNzM1ZmY5NjAifQ%3D%3D; at_home_club_session=eyJpdiI6ImxLYjlRNHplcGh1d2RVSEtnakxJNmc9PSIsInZhbHVlIjoiWnBjN0xheWlaNDdDUWZnZGxMUzlsM0VzbjZaZVdUSTBZL0R1WXRTTGp5emY0S2NodGZNN25hQmF1ajYzZzU3MiIsIm1hYyI6ImNlMWRmNWJhYmE1ODU3MzM1Y2Q4ZDI0MDIzNTU1OWQ4MDE3MGRiNTJjY2NjNmFmZDU5YzhjZTM4NGJlOGU5ZTkifQ%3D%3D; XSRF-TOKEN=eyJpdiI6ImhadVF0eHlEY3l4RWtnZk45MmVxZ2c9PSIsInZhbHVlIjoiRCs4QkNMRjBodzJKaFIvRVQwZUZlM3BzYmlJMGp0Y0E5RXdHdkYrblVzSzNPQTJZbE42ZlhlYllmWlg2a0ltMSIsIm1hYyI6IjA1NWU0ZjFiNDFjN2VkNjNiMzJiNjFlNTFiMjBmNWE3MzA4Yzk1YmJiNzdmZGUyZmZhNjcwYmQxZTYxYTBmY2QifQ%3D%3D; at_home_club_session=eyJpdiI6IjZxWXZSYjdGWXU5SHBKSFFRdGQycWc9PSIsInZhbHVlIjoiU3RyTDdoNGJBUW93ck9CTmFjVFpjRTRxMVVwQzZmcjJJTXJUNFU0UUZVcnkzcWdBbzZxWjNvTWZrZmFuMXBrbSIsIm1hYyI6IjFkOTFiNDg5YmZjYmE0NGZiZDg3ZGY5ZDQyMDg2MGZjNzFlMmI0OTA1OGY2MzdkMmFmOGI0ZTlkOTE4ZDM0NWUifQ%3D%3D; XLtgHBp79G2IlVzFPoHViq4wcAV1TMveovlNr1V4=eyJpdiI6ImZiRThmNUpBb3N0Z21MVHJRMVIvRFE9PSIsInZhbHVlIjoiVDV5S2tDOTFNcElqc1NINVpsdi9Ibk04cFVSekkvSytvY01YUDFIbENhZkV3VnVTaHpOTjlwUjROVnFlMk96SWgwUlByZFU3MlA0YVhTelFDaEVTdndkQnczUFZ3bXJlVHpUTkZwb3Z2d1Z1VUI1STJkeG1ZMm13N0h3S282V2l3MmlvUmFrQXY4SXFFaHcrNjBucktJcmRmSk81UUtFcUFlOCtNaUZHelJpRmxkY2gyZVFOWWRUWTdqZ2NFYi85WlVBeFJ2bm5xU05IU3F1aE0ybXlzUnltRUh6eG1qZklaVW9GSDRsU3RMWmRrL242WjJ5VFZVa3dDTWtIN051SThUa0FjZDFsSXp6SmNSTWFWTDl5dk5IczFKcEpSWS9qZUZiMGVENTdKcjVrTlBITWRjV2dUY1RmcElNL0FUSzQxS0JGZFBzUWVha3ZIOVh6YWpTZnNZa202bHB1akQvakVHWTRZU1Z1WWFZZmxIcDN2bDZrek9JRHkybE01b3BlTWErYmhKK2xQN0FmTzhZS3M3bTBHUVJaSzhIdzBGWlc4Vjd1QVJCSFovZz0iLCJtYWMiOiI2ZWZlYWIwYzhlZjMyZjlkNTI0ZWJmYjFhMzExYTIxZTkyNDM1ODM3ODg1YjlmM2ZiOTVhMTMwYTAwYjk4NjhiIn0%3D
Host: mydomain.com
Origin: http://spa.mydomain.com
Referer: http://spa.mydomain.info/account
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36
X-XSRF-TOKEN: eyJpdiI6ImhadVF0eHlEY3l4RWtnZk45MmVxZ2c9PSIsInZhbHVlIjoiRCs4QkNMRjBodzJKaFIvRVQwZUZlM3BzYmlJMGp0Y0E5RXdHdkYrblVzSzNPQTJZbE42ZlhlYllmWlg2a0ltMSIsIm1hYyI6IjA1NWU0ZjFiNDFjN2VkNjNiMzJiNjFlNTFiMjBmNWE3MzA4Yzk1YmJiNzdmZGUyZmZhNjcwYmQxZTYxYTBmY2QifQ==
そして私のコア、
'paths' => ['api/*', 'sanctum/csrf-cookie', 'login'],
'allowed_methods' => ['*'],
'allowed_origins' => ['*'],
'allowed_origins_patterns' => [],
'allowed_headers' => ['*'],
'exposed_headers' => [],
'max_age' => 0,
'supports_credentials' => true,
すべてがローカルホストで完全に機能します。