1

ユーザー認証にDeviseとOmniauthを使用しています。

認証後2週間はサインインしたままにしてほしい。ただし、ユーザーがブラウザウィンドウを閉じて再度開くと、ログイン画面が再び表示されます。

ブラウザを閉じて再度開いた後もユーザーが接続を維持するための正しい構成は何ですか?

4

2 に答える 2

2

Deviseのwikiでこのページをチェックしてください:

https://github.com/plataformatec/devise/wiki/Omniauthable,-sign-out-action-and-rememberable

基本的に、Omniauthを使用する場合、Deviseはデフォルトでrememberableを呼び出しません。そうしたい場合はremember_me(@user)、omniauthコールバックを呼び出すだけで、Deviseがハードワークを行います。また、デバイス初期化子で設定されたすべての構成オプションを使用します。

于 2012-10-26T10:16:49.527 に答える
0

ログインおよびログアウト時にCookieを追加するには、デバイスのSessionsControllerを拡張する必要があるため、コントローラーは次のようになります。

class SessionsController < Devise::SessionsController
  # POST /resource/sign_in
  def create
    cookies[:sign_in] = "Sign in info you want to store"
    # add this for expiration { :expires => 2.weeks.from_now }
    super
  end

  # GET /resource/sign_out
  def destroy
    cookies[:sign_out] = "Sign out info you want to store"
    super
  end
end

次に、routes.rbに以下を追加する必要があります。

devise_for :users, :controllers => { :sessions => "sessions" }

Cookieの有効期限を2週間に設定することもできます。

于 2012-10-25T11:31:58.843 に答える