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%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%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
Tags und Links ruby-on-rails omniauth