【问题标题】:Rails - How to disable access to localhost:3000/users/sign_in on Devise gem?Rails - 如何在 Devise gem 上禁用对 localhost:3000/users/sign_in 的访问?
【发布时间】:2014-07-08 02:10:18
【问题描述】:

我这样设置我的 route.rb:

devise_scope :user do
  get "/login" => "devise/sessions#new"
end

现在我可以在 localhost:3000/login 上输入,然后在 sign_in 上输入。

但是如果我在 localhost:3000/users/sign_in 上输入仍然有效...如何禁用它?

【问题讨论】:

    标签: ruby-on-rails ruby login devise


    【解决方案1】:

    来自设计documentation

    请注意,您可以跳过所有会话路由并仅定义您自己的路由 使用如下跳过选项:

      devise_for :users, :skip => [:sessions]
      as :user do
        get 'signin' => 'devise/sessions#new', :as => :new_user_session
        post 'signin' => 'devise/sessions#create', :as => :user_session
        delete 'signout' => 'devise/sessions#destroy', :as => :destroy_user_session
      end
    

    这样 :authenticate_user!和其他助手将重定向 用户访问您定义的正确自定义页面。

    【讨论】:

      猜你喜欢
      • 2021-08-19
      • 2015-03-23
      • 1970-01-01
      • 1970-01-01
      • 2015-04-23
      • 1970-01-01
      • 2021-12-18
      • 2016-07-21
      • 2019-03-05
      相关资源
      最近更新 更多