0

私は Ruby/Rails の初心者で、Rails のセッション メカニズムとセッション全体についていくつか質問があります。

  1. Rails 4 のセッション メカニズムは Cookie をデフォルト ストアとして使用することを読みました。本当ですか?
  2. 私が知っているように、ブラウザを閉じるとセッションが破棄されます。有効期限を手動で変更できますか?

前もって感謝します。

4

3 に答える 3

3

はい、セッションはデフォルトで 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 を使用してユーザー セッションを永続化します。

于 2013-08-20T15:30:36.660 に答える
1
  1. はい
  2. はい

これらは両方とも で設定できますconfig/initializers/session_store.rb。例えば:

MyApp::Application.config.session_store :cookie_store,
                                        :key => '_my_app_session',
                                        :expire_after => 30.minutes
于 2013-08-20T15:34:11.197 に答える
1

expire_after初期化子で使用してタイムアウトを設定できます

My::Application.config.session_store :active_record_store, {
  key: "session_id",
  domain: "domain.com",
  expire_after: 12.hours,
}
于 2013-08-20T15:32:52.377 に答える