У нас есть существующая пользовательская база и мы добавляем подтверждение по электронной почте. Подтверждение является необязательным, но позволит дополнительные функции. Пользователи не обязаны подтверждать. Я добавил подтверждающий модуль и выполнил миграцию. Подтверждение работает как объявление.
Но пользователи не могут войти в систему, так как они не подтверждены. Все текущие пользователи имеют нулевые значения подтверждения, которые мы хотим (пользователи могут вернуться и подтвердить свою электронную почту в любое время). Я следил за всеми статьями wiki и устанавливал allow_unconfirmed_access_for в инициализаторе:
config.allow_unconfirmed_access_for = 10.years
Я также попытался установить его в нашей модели пользователя:
devise :confirmable, allow_unconfirmed_access_for: 10.years
Я также пытался использовать другие значения (1.year, 500.days и т.д.)
My SessionsController, который не сильно отличается от метода Devise (здесь, на 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
Указать ответ:
{ "error": "Перед продолжением необходимо подтвердить свою учетную запись".}
Придумайте 2.1.2 с Rails 3.2.9.