我正在使用Deviate并创建了一个名为:active的用户字段,该字段可以是真的,也可以是假的.在允许用户登录之前,我必须手动激活用户(true).至少这是目的.我试过这个...
class SessionsController < Devise::SessionsController
# POST /resource/sign_in
def create
"resource/signin CREATE"
self.resource = warden.authenticate!(auth_options)
unless resource.active?
sign_out
redirect_to :sorry_not_active_url
return
end
set_flash_message(:notice, :signed_in) if is_navigational_format?
sign_in(resource_name, resource)
respond_with resource, :location => after_sign_in_path_for(resource)
end
end
但是,这并不能覆盖用户可以登录的所有位置,例如,当用户更改密码时,站点会在用户更改密码后自动登录.但是,如果用户不是活动的,我不希望他们被允许登录,而是被重定向到一个抱歉的非活动url.
如果用户未处于活动状态,防止用户登录的最佳方法是什么?
谢谢您.