12/08/2018, 00:13
devise で cookie からログインしたかどうかを判定する
devise Rails で認証の仕組みを実装する時に利用する devise、便利ですよね。 細かいことですが、掲題の件をどのように実装するか確認したので、自分用のメモ。 Devise::Strategies::Rememberable の authenticate! メソッドで cookie の内容を確認して認証しているので、その中で session にフラグを立てる実装にしました。 用途としては、ユーザー情報変更等の処理の前に、このフラグが立っていたら、パスワードを再入力してもらう、ということが考えられます。 require ...
devise
Rails で認証の仕組みを実装する時に利用する devise、便利ですよね。
細かいことですが、掲題の件をどのように実装するか確認したので、自分用のメモ。
Devise::Strategies::Rememberable の authenticate! メソッドで cookie の内容を確認して認証しているので、その中で session にフラグを立てる実装にしました。
用途としては、ユーザー情報変更等の処理の前に、このフラグが立っていたら、パスワードを再入力してもらう、ということが考えられます。
require "devise/strategies/rememberable" class Devise::Strategies::Rememberable < Devise::Strategies::Authenticatable def authenticate! resource = mapping.to.serialize_from_cookie(*remember_cookie) unless resource cookies.delete(remember_key) return pass end if validate(resource) session[:login_via_cookie] = true success!(resource) end end end Warden::Strategies.add :rememberable, Devise::Strategies::Rememberable
このファイルを initilaizer 辺りで require してオーバーライドすればOK。
devise 3.2.4 で確認済みです。