×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
図にまとめたので上げておきます。
要点は
・laravelのセッションはネイティブPHPのセッションを使っていない。
・cookieに設定される値は暗号化される。
・cookieに保存されるセッションid(laravel_session)とトークン(XSRF-TOKEN)はcookie名が違う。
・tokenはセッション作成時に発行され、regenerateしない限り不動。
・tokenをリクエストする方法は3通り(ヘッダ2パターン、パラメータ1パターン)ある。
というところあたりだと思います。
意外な落とし穴では
・cookieの暗号化はenvのAPP_KEYがsaltに使われているので変更すると複合できなくなる
・URL毎にlaravel_sessionにあたるcookie名を分けている場合、XSRF-TOKENも揃えないと意味がない
(x-csrf-token, _tokenだけで制御されているなら不要ですが)
・XSRF-TOKENのcookieの有効期限がなぜかソースに直書きになっているので
期限を伸ばすならばオーバーライドが必要
https://teratail.com/questions/27003
という点が挙げられます。
要点は
・laravelのセッションはネイティブPHPのセッションを使っていない。
・cookieに設定される値は暗号化される。
・cookieに保存されるセッションid(laravel_session)とトークン(XSRF-TOKEN)はcookie名が違う。
・tokenはセッション作成時に発行され、regenerateしない限り不動。
・tokenをリクエストする方法は3通り(ヘッダ2パターン、パラメータ1パターン)ある。
というところあたりだと思います。
意外な落とし穴では
・cookieの暗号化はenvのAPP_KEYがsaltに使われているので変更すると複合できなくなる
・URL毎にlaravel_sessionにあたるcookie名を分けている場合、XSRF-TOKENも揃えないと意味がない
(x-csrf-token, _tokenだけで制御されているなら不要ですが)
・XSRF-TOKENのcookieの有効期限がなぜかソースに直書きになっているので
期限を伸ばすならばオーバーライドが必要
https://teratail.com/questions/27003
という点が挙げられます。
PR
この記事にコメントする
カレンダー
最新記事
(05/29)
(04/24)
(04/24)
(02/07)
(07/26)