我为设计用户提供了一个非常简单的登录页面。提交不正确的数据后,日志显示“401 Unauthorized”并将我重定向回登录页面。我想不出一种向用户显示错误消息的方法。
我看了一下devise::sessions_controller#create
是这样的,
# POST /resource/sign_in
def create
resource = warden.authenticate!(auth_options)
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
def auth_options
{ :scope => resource_name, :recall => "#{controller_path}#new" }
end
如果身份验证失败,流程会中断,warden.authenticate
并且用户会被重定向到“新”页面,即登录页面。
我只需要向用户显示一个 invalid_credentials 工具提示/flash_message。所以我通过修改身份验证失败的时间来做到这一点,我在其中设置了错误消息。:recall => "#{controller_path}#handle_create_fail" (look at
auth_options
) which calls handle_create_fails
我不确定我是否忽略了设计已经提供的东西。
我怎样才能更好地处理这个问题?