我正在使用omniauth和omniauth-identity通过Google、Facebook 和传统的用户名/密码进行身份验证。除了身份验证失败的情况外,我的一切工作都很好。失败时,例如输入无效密码时,omniauth 将调用/auth/failure
. 我已经将它映射到一个控制器,该控制器重定向到一个适当的页面并显示一个 Flash 消息。我遇到的问题是我无法让闪光灯实际显示。示例代码:
在routes.rb
:
match "/auth/failure" => "sessions#failure"
在控制器中它调用:
def failure
redirect_to root_url, alert: "Authentication failed, please try again."
end
由于omniauth正在做的任何事情和重定向的结合,我觉得闪光灯正在丢失。我知道视图代码是正确的,因为它会闪烁其他内容,例如成功登录消息。我将不胜感激有关如何调整我的示例以显示 flash 消息的建议,或有关替代omniauth 故障处理机制的建议。谢谢。