ruby-on-rails - 设计登录失败后重定向

标签 ruby-on-rails redirect authentication devise

我发现的所有问题都与使用助手成功登录有关 after_sign_in_path_for(资源)

我的网站索引中有一个登录表单,当登录失败时,它会重定向到“users/sign_in”

但是当登录失败时如何重定向到我的site#index

最佳答案

  1. 在您的 lib 目录中创建一个 custom_failure.rb,其中包含:

     class CustomFailure < Devise::FailureApp
       def redirect_url
         your_path
       end
    
       def respond
         if http_auth?
           http_auth
         else
           redirect
         end
       end
     end
    
  2. 在您的 Devise 初始化程序中,包括:

       config.warden do |manager|
         manager.failure_app = CustomFailure
       end
    
  3. 确保 Rails 正在加载您的 lib 文件,application.rb :

     config.autoload_paths += %W(#{config.root}/lib)
    

不要忘记重新启动服务器。

我认为没有更简单的方法可以做到这一点。

关于ruby-on-rails - 设计登录失败后重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5832631/

相关文章:

php - 为什么这个 header 位置重定向在内容已经被回显后起作用?

scala - 使用 Scala Process 方法时如何使用重定向

ruby-on-rails - #<User::ActiveRecord_Relation:0x007fc328248ef0> 的未定义方法 `avatar'

sql - “NOT IN”条件不适用于列表中的 'NULL'

ruby-on-rails - 乘客 EBADF 文件描述符异常 502

Apache:使用查询参数从一个 URL 重定向到另一个

authentication - 需要帮助修复此错误 "Connection reset by peer - SSL_connect"

apache - lighttpd:身份验证后如何将端口(仅对本地主机可见)转发到WAN?

php - 移动身份验证器如何工作

ruby-on-rails - Rails_admin 和专家:未定义方法 `policy' #<RailsAdmin::MainController