Warum lässt Devise nicht zu, dass sich nicht bestätigte Benutzer anmelden, auch wenn allow_unconfirmed_access_for festgelegt ist?
Wir haben eine bestehende Benutzerbasis und fügen eine E-Mail-Bestätigung hinzu. Die Bestätigung ist optional, ermöglicht jedoch zusätzliche Funktionen. Benutzer müssen nicht bestätigen. Ich habe das bestätigbare Modul hinzugefügt und Migrationen ausgeführt. Bestätigung funktioniert wie angekündigt.
Benutzer können sich jedoch nicht anmelden, da sie nicht bestätigt wurden. Alle aktuellen Benutzer haben keine Bestätigungswerte, was wir möchten (Benutzer können jederzeit zurückgehen und ihre E-Mail bestätigen). Ich habe alle Wiki-Artikel von Devise befolgt und im Initializer allow_unconfirmed_access_for gesetzt:
config.allow_unconfirmed_access_for = 10.years
Ich habe auch versucht, es in unserem Benutzermodell festzulegen:
devise :confirmable, allow_unconfirmed_access_for: 10.years
Ich habe auch versucht, andere Werte zu verwenden (1. Jahr, 500 Tage usw.)
Mein SessionsController, der sich nicht wesentlich von der Methode von Devise unterscheidet (hier auf Github)
class Users::SessionsController < Devise::SessionsController
respond_to :json
def new
redirect_to "/#login"
end
def create
resource = warden.authenticate(auth_options)
if !resource
render json: {error: "Invalid email or password" }, status: 401 and return
end
sign_in(resource_name, resource)
render "sign_in", formats: [:json], locals: { object: resource }
end
end
Antwort von Devise:
{"error": "Sie müssen Ihr Konto bestätigen, bevor Sie fortfahren können."}
Entwurf 2.1.2 mit Schienen 3.2.9.