设计认证中的附加逻辑

fem*_*emi 5 authentication login devise ruby-on-rails-3

请问我如何以及在哪里可以在设计中放置额外的身份验证逻辑?

我在我的用户表中添加了一个名为 expire_date 的自定义列,它是一个日期列。

我想要一个额外的要求,即在允许他们进行身份验证之前,那里的日期不得晚于今天的日期。

请问我在哪里可以添加这个逻辑?

谢谢

小智 5

或者你可以覆盖active_for_authentication? 用户模型中的方法

def active_for_authentication?
 super && (test your dates here)
end
Run Code Online (Sandbox Code Playgroud)

如果它处于非活动状态,它将生成有关该帐户未处于活动状态的闪现消息。如果您想要不同的内容,例如“此用户尚未激活”,请更改:inactive文件中的设置config/locales/devise.en.yml。这主要取自Devise wiki


Jat*_*tra 1

创建您自己的继承自 Devise::SessionsController 的控制器

应用程序/控制器/用户/sessions_controller.rb

class Users::SessionsController < Devise::SessionsController
...
Overwrite the new method
...
Change what else you need to change
...
end
Run Code Online (Sandbox Code Playgroud)

将新路线添加到路线文件中,然后就可以开始了。