私はDevise for rails 3アプリケーションを使用しています。ページキャッシングのために、私はログイン/アウト情報のためのクッキーを設定する必要があります。Deviseでログイン/ログアウトするときにCookieを設定する方法
Deviseでログイン/ログアウトするときにCookieを設定する最も簡単な方法は何ですか?私は「コントローラーをカスタマイズする方法」を読んでいますが、それは多くの作業のようです。
私はDevise for rails 3アプリケーションを使用しています。ページキャッシングのために、私はログイン/アウト情報のためのクッキーを設定する必要があります。Deviseでログイン/ログアウトするときにCookieを設定する方法
Deviseでログイン/ログアウトするときにCookieを設定する最も簡単な方法は何ですか?私は「コントローラーをカスタマイズする方法」を読んでいますが、それは多くの作業のようです。
実際にあなたがこれに似たコントローラを作成することができ、中にログにクッキーを追加し、ログアウトする工夫のSessionsControllerを拡張するためにあまりにもハードではないでしょう。
# app/controllers/sessions_controller.rb
class SessionsController < Devise::SessionsController
# POST /resource/sign_in
def create
cookies[:sign_in] = "Sign in info you want to store"
super
end
# GET /resource/sign_out
def destroy
cookies[:sign_out] = "Sign out info you want to store"
super
end
end
次にあなたが追加する必要がありますあなたのルートに従ってください。
devise_for :users, :controllers => { :sessions => "sessions" }
これであなたはほとんどの方法が得られます。
工夫がウォーデンに基づいているため、別の解決策は、あなたのdevise.rbで例えば、ウォーデンのコールバックを使用することです:
このソリューションは、新たな初期化子を作成答えるかに追加するカールrosaen @から適応Warden::Manager.after_set_user do |user,auth,opts|
auth.cookies[:signed_in] = 1
end
Warden::Manager.before_logout do |user,auth,opts|
auth.cookies.delete :signed_in
end
signed_inコントロールのクッキーを設定するうまい方法です。私はSessionsControllerを受け取りましたが、これもうまくいきましたが、ユーザーが「パスワードを忘れた」方法でパスワードをリセットした直後にCookieを設定していませんでした。 Wardenコールバックを使用して期待どおりに動作しました! –
これははるかに効果的です。オムニバスでのログインやユーザーがパスワードを更新して再度サインインする必要がある場合などの状況を処理します。 – ScotterC
@karlrosaen〜 'auth.cookies'はサポートされなくなりました – Roland
あなたのdevise.rbイニシャライザの終わり。ではない、それは私がセッション/ new.html.hamlをコピーしていたクッキー
Warden::Manager.after_authentication do |user, auth, opts|
if user.remember_me
auth.cookies[:email] = {value: user.email, expires: 2.weeks.from_now}
else
auth.cookies.delete :email
end
end
を削除するかどう
これ
は、私に設定されているオプションを覚えていれば、電子メールを覚えてクッキーを追加します。できます!ありがとう。 –このソリューションをhttp://stackoverflow.com/questions/4301249/how-to-change-the-default-path-of-view-files-in-a-rails-3-controllerで使用すると、オリジナルを使用できます再生回数 –
iframeにCookieが設定されていません。ログインすると、 'Ecwid'組み込みアプリケーションのログインページにリダイレクトされます。 – kpp