deviseのOAuthでログイン状態を保持する(remember_me)を最初から設定する方法

スポンサーリンク
Pocket
LINEで送る

以下の記事でdeviseにfacebook認証を導入することができますが、ログイン状態を保持できません

【OAuth】Ruby on Rails:deviseでfacebook認証を実装するやり方

スポンサーリンク

 

facebook認証でログイン保持を実装するには以下の記述を追加

include Devise::Controllers::Rememberable
remember_me(@user)

 

↓こうなってればOK

def callback_from(provider)
  provider = provider.to_s

  @user = User.find_for_omiauth(request.env['omniauth.auth'])

  if @user.persisted?
    flash[:notice] = I18n.t('devise.omniauth_callbacks.success', kind: provider.capitalize)
    remember_me(@user)
    sign_in_and_redirect @user, event: :authentication
  else
    flash[:notice] = "ログインできません"
    session["devise.#{provider}_data"] = request.env['omniauth.auth']
    redirect_to root_path
  end
 end

 

これでfacebookログインでもログイン状態が保持されます。