【发布时间】:2011-06-07 04:16:43
【问题描述】:
伙计们。我在进行 authlogic 登录验证时遇到问题。我在用户模型中有一个神奇的“活动”字段,如果活动是假的,当用正确的密码登录时,它会弹出“你被暂停,请联系你的管理”的消息(我在 I18n 文件中定义了这个消息);当使用错误密码登录时,它会弹出not_active消息加上password_invalid消息,如“密码无效”。我认为这是因为 authlogic 对“活动”字段和密码都进行了验证,而且密码验证似乎是第一位的。
我的问题是,如果“活动”为假,如何绕过密码验证。或者,我可以只显示 not_active 消息吗?我的代码如下:
if @user_session.save
redirect_to home_path
else
render :json => {:success => false, :error => @user_session.errors.full_messages.join("\n")}
end
【问题讨论】:
-
我认为你应该先检查密码,然后检查活动。
-
@Joy:但如果 active 为 false,我想绕过密码验证。如果用户处于非活动状态,我只想显示 not_active 消息,无论用户输入正确或错误的密码,都没有 password_invalid 消息。