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.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage