InvalidAuthenticityToken in Entwickeln::SessionsController#destroy (sign out nach bereits abgemeldet)

Ich bin mit Entwickeln 3.2.0 für die Authentifizierung und fand ein Problem wenn ich den folgenden Code:

  • tab 1: Zeichen in app
  • tab 2: gehen Sie zu einer beliebigen Seite in der app
  • tab 2: Zeichen aus (Erfolg)
  • tab 1: Zeichen aus (Fehler - siehe Ausnahme unten)

Ausnahme ausgelöst:

ActionController::InvalidAuthenticityToken in Entwickeln::SessionsController#zerstören

In der Entwicklung log sehe ich:

Nicht überprüfen können CSRF token authenticity

Und die obersten drei Zeilen der stack-trace sind:

ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):
  actionpack (4.0.0) lib/action_controller/metal/request_forgery_protection.rb:163:in `handle_unverified_request'
  actionpack (4.0.0) lib/action_controller/metal/request_forgery_protection.rb:170:in `handle_unverified_request'
  devise (3.2.0) lib/devise/controllers/helpers.rb:198:in `handle_unverified_request'

Wie kann ich sicherstellen aufeinander Zeichen outs nicht zu einer Ausnahme?

  • Seine nicht aufeinanderfolgenden Zeichen aus, die Sie versuchen, melden Sie sich, wenn Sie sich Abmelden. also warum nicht melden Sie sich Benutzer von tab1 , wenn Sie sich Abmelden aus tab2
  • Ich bin nicht sicher, warum Sie sagen, dass dies nicht eine aufeinander folgende Zeichen aus. Aufeinander Folgen einander. Wenn ich versuche, melden Sie sich in einem tab nach der Unterzeichnung in die andere, das ist sukzessive so weit ich bin besorgt. Der Punkt ist aber, dass dies eine sehr vernünftige Aktion, die die Nutzer ergreifen können. Nur ein Beispiel ist, dass ein Benutzer öffnet mehrere tabs auf einer einzigen Seite, und wenn Sie melden sich in einem tab, und dann gehen Sie sukzessive schließen Sie die anderen Registerkarten, können Sie versuchen, melden Sie sich wieder (durch den unterzeichneten-im Aussehen von allen anderen Reitern).
  • jetzt verstehe ich es. Ja, Entwickeln haben sollte behandelt den logout-Szenario ohne zu werfen fiesen Fehler. Aber wieder, Sie können sagen, das ist, was wir nennen customization. KirtiThorat die Problemumgehung ist wahrscheinlich eine bessere Lösung Entwickeln, bis Sie implementiert.
  • Finden Sie in der Ausgabe eingereicht von @freddyrangel github.com/plataformatec/devise/issues/2934 auf Entwickeln Github-Repo. Sie können an der Diskussion teilnehmen, durch die Unterstützung das Problem.
InformationsquelleAutor user664833 | 2014-03-18
Schreibe einen Kommentar