11036


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


CC BY-SA 3.0
2015-06-04T15:47:22.563
10983
2015-06-06T07:57:02.450
9161
question
ruby-on-rails
Rails4 facebook認証時はメール認証を行わない方法


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

私の場合は下記

class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController

[code]

      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
    
[/code]


CC BY-SA 3.0
2015-06-06T07:57:02.450
11036
2015-06-06T07:57:02.450
9161
10983
answer