私は Ruby/Rails の初心者で、Rails のセッション メカニズムとセッション全体についていくつか質問があります。
- Rails 4 のセッション メカニズムは Cookie をデフォルト ストアとして使用することを読みました。本当ですか?
- 私が知っているように、ブラウザを閉じるとセッションが破棄されます。有効期限を手動で変更できますか?
前もって感謝します。
私は Ruby/Rails の初心者で、Rails のセッション メカニズムとセッション全体についていくつか質問があります。
前もって感謝します。
はい、セッションはデフォルトで Cookie に保存されます。config/initializers/
下を見るsession_store.rb
と、以下の内容のファイルがあります。
Appname::Application.config.session_store :cookie_store, key: '_appname_session'
この動作をオーバーライドする限り、カスタム Cookie を作成して、その有効期限を希望の時間に設定できます。一般に、認証を作成するときにユーザー セッションが処理される方法です。例えば:
def sign_in(user)
cookies[:session_token] = { value: user.session_token, expires: 1.day.from_now }
self.current_user = user
end
次に、その Cookie を使用してユーザー セッションを永続化します。
これらは両方とも で設定できますconfig/initializers/session_store.rb
。例えば:
MyApp::Application.config.session_store :cookie_store,
:key => '_my_app_session',
:expire_after => 30.minutes
expire_after
初期化子で使用してタイムアウトを設定できます
My::Application.config.session_store :active_record_store, {
key: "session_id",
domain: "domain.com",
expire_after: 12.hours,
}