Rails4 facebook認証時はメール認証を行わない方法

投稿者: Anonymous

Devise+OmniAuthでユーザ認証を実装しました。
メールアドレスとパスワードで登録を行う場合に認証フローを追加したのですが
facebook認証時は上記を省略したいのですがどうしたら良いでしょうか?

解決

対象のコントローラに@user.skip_confirmation!を追記する

私の場合は下記

class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController

  def facebook
    # You need to implement the method below in your model (e.g. app/models/user.rb)
    @user = User.from_omniauth(request.env["omniauth.auth"])
    @user.skip_confirmation!
    if @user.persisted?
      sign_in_and_redirect @user, :event => :authentication #this will throw if @user is not activated
      set_flash_message(:notice, :success, :kind => "Facebook") if is_navigational_format?
    else
      session["devise.facebook_data"] = request.env["omniauth.auth"]
      redirect_to new_user_registration_url
    end
  end
end
回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *