【问题标题】:Rerouting custom routes when user is not authenticated (Devise, rails gem)用户未通过身份验证时重新路由自定义路由(设计,rails gem)
【发布时间】:2016-05-25 04:39:50
【问题描述】:

我想将未经身份验证的用户重新路由到我的登录页面,假设我的路由现在是 http://localhost:3000/users/sign_in 又名 devise/sessions#new,默认情况下,设备将在未登录时编辑页面,因为这是内置的。但是任何自定义如果您没有登录,路由只会破坏应用程序,因为它不属于设计重新路由。如果未登录,如何将这些路由设置为重新路由? 直接从下面的设计中引用,我仍然不知道如何用我的路线实现这一点,代码应该是什么样的?

进入库

  class CustomFailure < Devise::FailureApp
    def redirect_url
       new_user_session_url(:subdomain => 'secure')
    end

    # You need to override respond to eliminate recall
    def respond
      if http_auth?
        http_auth
      else
        redirect
      end
    end
  end
And add the following in config/initializers/devise.rb:

  config.warden do |manager|
    manager.failure_app = CustomFailure
  end

进入初始化器

 config.warden do |manager|
    manager.failure_app = CustomFailure
  end

【问题讨论】:

    标签: ruby-on-rails devise


    【解决方案1】:

    你可以在你的 routes.rb

    中尝试这样的事情
    authenticated :user do
      devise_scope :user do
        root to: "dashboard#index"
      end
    end
    
    unauthenticated do
      devise_scope :user do
        root to: "homepage#index"
      end
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-19
      • 2012-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-18
      相关资源
      最近更新 更多