Rails 4 + Omniahuth + Devise: Logout-Link funktioniert nicht

8

Ich verwende Omniauth als meine einzige Methode, um mich in meine Rails-Anwendung einzuloggen.

Das Problem ist: Wenn ein Benutzer auf "Abmelden" klickt, wird die Seite neu geladen, und der Link "Abmelden" ist immer noch vorhanden (trotz benutzerdefinierter_logischer Einbettung). Was mich zu der Annahme verleitet, dass Benutzer nicht ausgeloggt werden

Hier ist mein index.html.erb :

%Vor%

Und mein user.rb

%Vor%

Und meine omniauth_callbacks_controller.rb :

%Vor%

Und meine routes.rb :

%Vor%

Leider bringt es mir keinen Fehler zurück. Es aktualisiert nur die Indexseite, als ob nichts passiert wäre.

Bearbeiten: Hier ist der POST, wenn ich auf Abmelden klicke

%Vor%

Bearbeiten 2: Ich habe dies in meine application_controller.rb

aufgenommen %Vor%

Und jetzt ist die Fehlermeldung, die ich in der Konsole bekomme:

%Vor%     
beaconhill 24.06.2015, 23:43
quelle

2 Antworten

2

Ich würde empfehlen, das if auf "unless" zu setzen, also zeigt es den Abmeldelink, wenn der Benutzer angemeldet ist.

%Vor%

Bei der Verwendung von devise ist eine alternative Möglichkeit, die richtigen Links anzuzeigen:

%Vor%     
user1724295 06.07.2015 03:03
quelle
2

Von den Protokollen , die Sie gepostet haben, haben Sie

  

Die Filterkette wurde angehalten als: verify_signed_out_user gerendert oder umgeleitet

Dies ist der Grund für Ihr Problem.

Das Hinzufügen von skip_before_filter :verify_signed_out_user zu Ihrem Controller sollte das Problem lösen.

Aktualisierung:

Sie müssen Ihren Code in index.html.erb in den folgenden

ändern %Vor%

Quelle: Devise Wiki

    
Pavan 06.07.2015 15:23
quelle

Tags und Links