nuxt.js(SSR)
laravel5の環境になります。
homestead(vagrant)
本番、テスト環境は
nuxt.js実行環境は、Google Cloud PlatForm
laravelはAWSのs3 EC2になります。
1、nuxt.jsの登録確認画面用のためにlaravelでsessionにデータを入れ、
2、nuxt.jsの確認画面に遷移した後、確認内容を取得する為、nuxt.jsからapiのget通信にて
3、laravelのsessionに保存されたデータを取ろうとすると今まで取れていたsessionデータが取れなくなりました。
今までは動いていました。また、本番サーバー、テストサーバーでは動作しております。
sessionデータは下記のフォルダ内に保存されております。
storage/framework/sessions/
debug等で調べてみると、
$id = $request->session()->getId();
で1、3の処理のsessionIDが違うものになっていました。
その為、テスト環境、本番環境のsessionIDを
$id = $request->session()->getId(); \Log::info($id);
で見てみると変わっておりませんでした。
その為、再度、下記をデプロイし、laravel logを見てみると
下記のログが出力されました。
$headers = $request->headers; \Log::info($headers);
production.INFO: Accept: application/json, text/plain, */* Accept-Encoding: gzip, deflate, br Accept-Language: ja,en-US;q=0.9,en;q=0.8 Authorization: Bearer ******************** Content-Length: Content-Type: Cookie: _ga=GA1.2.***********; _gcl_au=1.1..***********; _fbp=fb.1..***********; _ts_yjad=.***********; mf_user=.***********|; ***********-***********|***********.***********$***********.***********|***********||2|||0|17.26|61.***********; _session=cpR***********; _gid=GA1.2.***********.***********; pt_s_491b6443=vt=***********&cad=; pt_491b6443=uid=***********&nid=0&vid=Epzv-sOe6YPcrP6nYAjtbA&vn=10&pvn=1&sact=***********&to_flag=0&pl=***********/l9qR-deL0GBWYA*pt************ Host: ***********.com Origin: https://***********.com Referer: https://***********.com/ Sec-Ch-Ua: "Chromium";v="86", "\"Not\A;Brand";v="99", "Google Chrome";v="86" Sec-Ch-Ua-Mobile: ?0 Sec-Fetch-Dest: empty Sec-Fetch-Mode: cors Sec-Fetch-Site: same-site User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
ログを確認すると
ローカル環境では、Content-Type: と Host: の間に Cookie: 情報が入っておりませんでしたが、
本番、テスト環境では、Cookie: 情報が入っており、さらに、_session=にsessionIDが入っていました。
上記のことから、原因は、
通常、sessionを使うにはブラウザのcookieに格納されたsessionIDを
読み取り、読み取られたsessionIDでsession情報を使用していると思いますが、
ローカル環境では、以前、は送られていたと思うのですが、cookie情報が何が原因で、
送られなくなりsessionを取得できなくなっている様です。
ご存知の方おられましたがご教授の方お願い致します。
sessionの記述方法は下記で行っております。
sessionデータ登録 $request->session()->put('key', 'value'); sessionデータ全取得 $request->session()->all(); 特製sessionデータ取得 $request->session()->get('key');
あなたの回答
tips
プレビュー