我正在开发一个使用Rails 4和Devise进行用户身份验证的应用程序.它旨在由客户在客户店面的计算机上使用,用户应始终使用每个商店的用户帐户登录.
但是,由于有些页面我们不希望客户看到,例如/ admin,我们已经决定用户在访问时首次重新输入密码(只有密码,而不是用户名和密码)特定页面,即使他们已经登录.
如何强制用户重新输入特定页面的密码?
最佳答案 {我正在做一个类似的应用程序,旨在支持小组活动.所以领导者登录每台计算机,参与者只需选择他们的用户名.为了保护领导者配置页面,我做了以下几点
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
效果很好.用户必须重新进行身份验证才能访问管理页面,因此他们为该类登录的计算机在没有第二次登录的情况下无法访问.