我有一个rails应用程序,使用devise gem进行用户身份验证。即使设置了confirm_within参数,设计用户也不会登录
我用可确认发送确认邮件给用户。它运行良好。我收到确认电子邮件。我需要在成功登录前确认我的帐户。
我想让他们在确认他们的帐户之前尝试我们的应用一段时间。所以我在设计初始化器中设置了confirm_within。它失败了。用户填写注册表格后,他们将在注册后重定向回登录页面。我查了一下日志,看起来用户没有登录,所以认证失败!过滤前。
这是我的配置。
型号:user.rb
devise :database_authenticatable, :registerable, :encryptable,
:recoverable, :rememberable, :trackable, :validatable, :confirmable
route.rb
devise_for :users, :controllers => {:password => "passwords"}
初始化器:devise.rb
config.confirm_within = 2.days
application_controller.rb
def after_sign_in_path_for(resource)
stored_location_for(resource) || jobs_path
end
jobs_controller.rb
class JobsController < ApplicationController
before_filter :authenticate_user!
***some functions
end
我不知道我做错过什么。有人会好心告诉我如何解决这个问题吗?谢谢。
你有没有签过用户?您需要拨打'sign_in @ user'才能让用户登录。通常,您在提交登录表单时对用户的凭据进行身份验证后会这样做... – Batkins 2012-02-01 21:37:29
感谢回复@Batkins。注册和确认过程由Devise控制。我使用官方宝石,并没有改变任何内部。我检查了源代码,并似乎设计sign_in用户注册#创建已经....任何想法? – 2012-02-02 04:58:06