Por que o Devise não permite que usuários não confirmados façam login mesmo quando o allow_unconfirmed_access_for está definido?

Temos uma base de usuários existente e estamos adicionando uma confirmação por e-mail. A confirmação é opcional, mas permitirá recursos adicionais. Os usuários não precisam confirmar. Eu adicionei o módulo confirmble e executei migrações. A confirmação funciona conforme anunciado.

Mas os usuários não podem fazer login, pois não estão confirmados. Todos os usuários atuais têm valores de confirmação nulos, que é o que queremos (os usuários podem voltar e confirmar seu email a qualquer momento). Eu segui todos os artigos wiki do Devise e configurei allow_unconfirmed_access_for no inicializador:

config.allow_unconfirmed_access_for = 10.years 

Eu também tentei configurá-lo em nosso modelo de usuário também:

devise :confirmable, allow_unconfirmed_access_for: 10.years

Eu também tentei usar outros valores (1. ano, 500 dias, etc.)

My SessionsController, que não difere muito do método de Devise (aqui no 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

Resposta do Devise:

{"error": "Você precisa confirmar sua conta antes de continuar."}

Devise 2.1.2 com Rails 3.2.9.

questionAnswers(3)

yourAnswerToTheQuestion