vue-cli+XAMPPでローカル開発をしています。
vue-cliでUIを起動させてスタートさせるとlocalhost:8080でアプリが起動します。
XAMPPはaaa.localhostで起動しているとします。
CORS対策等は
vue側はaxiosで
vue
1import axios from "axios"; 2axios.defaults.withCredentials = true; 3axios.defaults.xsrfHeaderName = "X-CSRF-Token"; 4
を記載してあり、PHP側でapiを作成しており
PHP
1if (!isset($_SESSION)) { 2 session_start([ 3 'cookie_samesite'=>'None', 4 'cookie_secure'=>true 5 ]); 6}
と
PHP
1header("Access-Control-Allow-Origin: http://localhost:8080"); 2header("Access-Control-Allow-Credentials:true"); 3header('content-type: application/json; charset=utf-8');
でヘッダを出力しています。
ですが実際に実行してみると、APIにアクセスするたびにセッションIDが変わってしまいます。
でブラウザのNetworkログを見るとAPI(PHP)からのレスポンスには
log
1Set-Cookie: PHPSESSID=**********; path=/; secure; SameSite=None
とセッションIDが送られてくるのですがブラウザにCookieが保存されていないようで、毎回セッションIDが新規発行されてしまうために同じセッションにアクセス出来ないって事かな?と予想していますが対策が分かりません。
Chromeがバージョン80からクッキーについてのクロスサイト関係が厳しくなるのは分かってたつもりですが今回のこれがそれに絡むのかどうかも正直よく分かっていません。
コンソールにはクロスサイトのワーニング等出ていないので正しく動作していると思うのですが、クッキーが保存されない(事が原因かな?と予想しているのですが)件についてヒントを頂けませんでしょうか?
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。