2016-07-21 14 views
0

私はDeviseとomniauthのfb登録を持つレールアプリを作成しました。 すべて動作していますが、サインアップ後に最後のページにリダイレクトしたとき、fbから来ているユーザーのフラッシュメッセージにエラーがあります。ここDevise Omniauth Facebookのリダイレクトフラッシュメッセージエラー

は私application_controllerは、私がサインアップした後、取得やFacebookからのリダイレクトフラッシュメッセージはあなたが既に署名されている」と言っalready_authenticatedエラーです

def set_redirect_path 
    @redirect_path = request.path 
end 

def after_sign_in_path_for(resource) 
    if params[:redirect_to].present? 
    store_location_for(resource, params[:redirect_to]) 
    elsif request.referer == new_session_url(:user) 
    super 
    else 
    request.env['omniauth.origin'] || stored_location_for(resource) || request.referer || root_path 
    end 
end 

、ここomniauth_callbacks_controller

def facebook 
    @user = User.from_omniauth(request.env["omniauth.auth"])  

    if @user.persisted? 
     sign_in_and_redirect @user, :event => :authentication 
     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 

def failure 
    redirect_to root_path 
end 

ですに。"

は、誰もが、私はこの問題に

答えて

0

ソリューションafter_sign_in_path_for方法を変更することです

おかげで解決することができる方法を知ってい。たとえば、ApplicationControllerの場合:

def after_sign_in_path_for(resource) 
    super resource 
end 
関連する問題