Devise confirmation_token ist ungültig

8

Mein Benutzer.rb:

%Vor%

Meine Routen:

%Vor%

My ConfirmationsController ist ein Standard-Controller, aber mit verschiedenen Umleitungen.

Ich habe einen Link zu meiner E-Mail wie:

%Vor%

In Datenbank Benutzer hat

%Vor%

Aber wenn ich auf diesen Link klicke, sehe ich nur die Seite mit:

%Vor%

Was ich nicht tue - was ich noch einstellen muss.

CONFIRMATIONCONTROLLER:

%Vor%

Ich sage "Standard-Controller", denn wenn ich es entferne und keinen benutzerdefinierten Controller benutze, ist das Problem derselbe.

    
Wordica 22.08.2013, 20:20
quelle

3 Antworten

17

Welche Version von Device verwenden Sie? Wenn Sie sich in 3.1.0 oder höher befinden, wird dieses Verhalten erwartet:

CHANGELOG.md

Die Token, die in der Datenbank gespeichert sind, sollen nicht mit den Token übereinstimmen, die Sie in den Bestätigungs-E-Mails senden. Siehe devise / lib / devise / models / confirmable.rb , das enthält jetzt Folgendes:

%Vor%

Wie Sie sehen, wird das Token, das Sie über die Abfragezeichenfolge params übergeben, von Devise.token_generator verbraucht, und das Ergebnis dieser Operation ist das, was mit dem Token in der Datenbank verglichen wird, um den Benutzerdatensatz zu finden.

Es sieht so aus, als ob es vorübergehend möglich ist (in 3.1, aber nicht 3.2), dies auszuschalten, indem Sie

setzen %Vor%

in Ihrem Geräte-Initialisierer. Aber das Standardverhalten wurde geändert, um das Gerät sicherer zu machen. In diesem Blogpost finden Sie eine vollständige Beschreibung Überblick über die Sicherheitsverbesserungen in Version 3.1, einschließlich dieser Änderung.

    
gregates 23.08.2013, 00:16
quelle
5

Sie können die folgende Lösung verwenden (Einstellung config.allow_insecure_token_lookup = true ), aber laut Das Devise changelog , das wird nur vorübergehend verfügbar sein.

Das Problem ist wahrscheinlich entstanden, weil Sie den Entwicklungsgenerator ausgeführt haben, um alle ihre Ansichten in Ihre zurück zu legen, bevor sie diese Änderungen vorgenommen haben. Dann hast du dein Devise-Juwel aktualisiert und alle Backend-Sachen geändert, aber deine Ansichten nicht. Jetzt sind alle mit der Entwicklung in Zusammenhang stehenden Ansichten und Mailer veraltet und funktionieren nicht mit den neuen Token-Stilen.

Sie können die neuen E-Mails unter: Ссылка sehen. Die Hauptänderung ändert diese Linie:

%Vor%

bis

%Vor%

Der Hauptunterschied ist @resource.confirmation_token wird nur @token .

    
Erik Trautman 06.05.2014 01:43
quelle
3

Ich ändere @resource.confirmation_token in @token , dann funktioniert es.

    
scottxu 25.07.2014 03:19
quelle

Tags und Links