Logout beim Versuch, ein Objekt zu zerstören, erstellen (Rails 3.0.5 & Devise 1.1.8)

7

Ich habe ein Upgrade auf Rails 3.0.5 & amp; Ausarbeitung 1.1.8. Wenn ich versuche, ein Objekt zu löschen (durch eine Ansicht mit: remote = & gt; true), erhalte ich einen Authentifizierungsdialog und die Devise-Sitzung wird zerstört. Dann muss ich mich erneut anmelden, und das Objekt ist immer noch da ... hat sonst noch jemand dieses Problem? Irgendwelche Ideen, wie man es löst?

Vielen Dank.

    
Dario Barrionuevo 13.03.2011, 16:02
quelle

4 Antworten

16

Dieses Problem bezieht sich nicht auf Devise. Kurz gesagt, seit Rails 3.0.4 ist es erforderlich, dass jede Nicht-GET-Anfrage ein CSRF-Token haben sollte, ansonsten wird die Sitzung gelöscht.

  

Hier gibt es zwei wesentliche Änderungen   fix, das Verhalten bei CSRF   der Schutz hat sich geändert und der   Token wird jetzt für alle benötigt   Nicht-GET-Anfragen.

     

Nach dem Anwenden dieses Patches ist CSRF fehlgeschlagen   Anfragen generieren kein HTTP mehr   500 Fehler, stattdessen die Sitzung   zurückgesetzt werden . Benutzer können dies überschreiben   Verhalten durch Überschreiben   handle_unverified_request in ihrem eigenen   Controller.

Weitere Details hier: Ссылка

jQuery-Snippet zur Verwendung mit Ihren AJAX-Anfragen

%Vor%

Wenn Sie einen Prototyp verwenden, benötigen Sie den folgenden Code:

%Vor%     
Yura Omelchuk 16.03.2011, 13:53
quelle
4

Ich hatte die gleichen Probleme mit keiner Ajax-Destroy-Calls stellt sich heraus, ich habe nur die & lt;% = csrf_meta_tag% & gt; in der Kopfzeile meiner alten Layouts.

    
Paul Raupach 11.05.2011 16:51
quelle
2

Ich verwende rails 3.0.5 und ersetze einfach meine public / javascript / rails.js mit der neuesten von hier ( Ссылка ) hat dieses Problem behoben !!

PS: Diese rails.js sollte verwendet werden, wenn Sie nur jquery verwenden!

    
Kulbir Saini 20.04.2011 01:07
quelle
-1

Ich hatte das gleiche Problem in Rails 3.0.5 + Devise (1.x + 1.2RC): Benutzer wird bei bestimmten AJAX-Anfragen abgemeldet.

Die einzige Lösung, um dies jetzt zu vermeiden, ist das Herunterstufen von Rails auf 3.0.3.

    
CjK 15.03.2011 09:02
quelle

Tags und Links