¿Por qué Devise no permite que usuarios no confirmados inicien sesión incluso cuando se establece allow_unconfirmed_access_for?
Tenemos una base de usuarios existente y estamos agregando confirmación por correo electrónico. La confirmación es opcional, pero permitirá características adicionales. Los usuarios no están obligados a confirmar. He añadido el módulo confirmable y ejecuté migraciones. La confirmación funciona como se anuncia.
Pero, los usuarios no pueden iniciar sesión ya que no están confirmados. Todos los usuarios actuales tienen valores de confirmación nula, que es lo que queremos (los usuarios pueden volver y confirmar su correo electrónico en cualquier momento). He seguido todos los artículos de la wiki de Devise y he establecido allow_unconfirmed_access_for en el inicializador:
config.allow_unconfirmed_access_for = 10.years
También he intentado configurarlo en nuestro modelo de usuario también:
devise :confirmable, allow_unconfirmed_access_for: 10.years
También he intentado usar otros valores (1. años, 500 días, etc.)
My SessionsController, que no difiere mucho del método de Devise (aqui en 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
Respuesta de Devise:
{"error": "Debe confirmar su cuenta antes de continuar."}
Diseñar 2.1.2 con rieles 3.2.9.