【发布时间】:2015-02-18 02:22:57
【问题描述】:
我正在使用 Rails 4 和 Devise 开发一个应用程序来进行用户身份验证。它旨在供客户在我们客户店面的计算机上使用,并且用户应始终使用每个商店的用户帐户登录。
但是,由于我们不希望客户看到某些页面,例如 /admin,因此我们决定用户必须首先重新输入密码(仅密码,而不是用户名和密码)访问特定页面的时间,即使他们已经登录。
如何强制用户重新输入特定页面的密码?
【问题讨论】:
-
在
ApplicationController中定义一个重新认证方法,并使用before_filter运行它以执行特定操作。如果最近修改了session[:reauthenticated_at],则什么也不做,否则将用户重定向到要求输入密码的重新身份验证控制器,使用 Devise (current_user.password_digest && current_user.authenticate(params[:password])) 进行验证并将session[:reauthenticated_at]设置为Time.now -
感谢您的详细说明!!
标签: ruby-on-rails ruby-on-rails-4 devise