他ドメインのサイトに一時的に遷移し、戻ってくるような挙動の場合の注意
利用している決済システムの都合上、一度自前のサイトから金融機関のサイトへジャンプし、金融機関サイト側で手続きを完了してから自前のサイトへ戻ってくる挙動を実装中のハマった点。
自前のサイトへ戻ってくる際、POSTでパラメータが送信されて戻ってくるのだが、Cookieが送信されていなかったため、自前サイト側でセッションを復元できず処理が継続できなかった。
詳しく調べると、Firefox 52
を利用した場合は自前サイトに戻ってくる際にCookieが送信されるが、Chrome 91
ではCookieが送信されていなかった。
さらに調査を進めると、Chrome 80
からChrome 84
あたりにかけてSameSite Cookie
の扱いが変更された模様。
結局、セッションに登録するCookieに、SameSite=None
となるように属性を設定したところ、Chrome 91
でも期待の動作となった。
セキュリティの穴となる可能性もありそうなため、注意が必要だがPlay Framework 2.6
で上記設定を行うためには、application.conf
内で
play.http.session.sameSite = null
を指定すれば良い。