2016-07-21 16 views
0

Ich habe eine Rails-App mit Devise und omniauth erstellt, um die fb-Anmeldung zu haben. Alles funktioniert, aber als ich die Umleitung auf die letzte Seite nach der Anmeldung hatte ich den Fehler in der Flash-Nachricht für den Benutzer von fb kommen.Devise Omniauth facebook Redirect Flash-Nachricht Fehler

hier sind meine application_controller

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 

und hier die 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 

die Flash-Botschaft, die ich nach dem Schild aufstehen und Umleitung von Facebook ist die already_authenticated Fehler eines sagen: „Sie sind bereits unterzeichnet im."

Hat jemand weiß, wie kann ich dieses Problem lösen

dank

Antwort

0

Lösung ist after_sign_in_path_for Methode zu ändern. Zum Beispiel in ApplicationController:

def after_sign_in_path_for(resource) 
    super resource 
end 
Verwandte Themen