Ruby on Railsでのセッションの管理方法を3つ紹介します。
🐞 Cookieでの保存(CookieStore、デフォルト)
セッションの中身を_application_session
というCookieに保存します。Rails 4以降は暗号化されていますが、クライアント側で操作できてしまうので、過去の状態に戻す等の不正が考えられます。
👽 DBへの保存
「activerecord-session_store」などのGemを使うとDBにセッションの中身を保存できます。サーバ側に保存することでCookieStoreの問題を解消できますが、DBへの負荷が上がるデメリットがあります。
🎳 メモリへの保存
「Dalli」などのGemを使うとmemcachedやRedisなどにセッションを保存できます。DBよりも高速に処理できますが、複数サーバの環境では一ヵ所のmemcachedやRedisを共有する必要があります。
😀 補足:セッションの破棄
次のコマンドを実行すればセッションを破棄できます。
reset_session |