SinatraのSessionがページ遷移時に切れる
1週間くらいこの問題と格闘してたかも。
現象
Sinatraでセッションを利用していたんだけれども、ページを遷移すると同じドメイン内なのにセッションが空になってしまう。謎だ。
問題のソースコードはこちら。
プロジェクトの中からセッションに関わる部分だけを抽出。
Wrong usage of sinatra session
解決
StackOverFlowのこのページにて解決。
【参考URL】ruby - Sinatra clears session on post - Stack Overflow
何がいけなかったか。修正版のソースはこちら。
Sinatra basic sample using session
わかるだろうか?
そう、7行目のセッションを有効化するところだけ違う。
詳細はよくわかってないのだが、いろいろな入門サイトにある
enable :sessions
これはrack-protectionが有効になっているかなんだからしい。なので
use Rack::Session::Cookie
としてやればいいみたい。