我正在开发一个使用Rails 4和Devise进行用户身份验证的应用程序。它旨在由客户在客户店面的计算机上使用,用户应始终使用每个商店的用户帐户登录。
但是,由于有些页面我们不希望客户看到,例如/admin
,我们已经决定用户必须重新输入密码(只有密码,而不是用户名和密码)第一次访问特定页面时,即使他们已经登录。
如何强制用户重新输入特定页面的密码?
答案 0 :(得分:2)
{我正在做一个类似的应用程序,旨在支持小组活动。所以领导者登录每台计算机,参与者只需选择他们的用户名。保护领导者配置页面我做了以下
before_action :re_authenticate, only: [:admin_functions]
private
def re_authenticate
authenticate_or_request_with_http_basic('Administration') { |username, password|
username==current_user.username && current_user.valid_password?(password)
}
end
运作良好。用户必须重新进行身份验证才能访问管理页面,因此他们为该课程登录的计算机在没有第二次登录的情况下无法访问。