仅使用omniauth进行身份validation时,在设计中配置路由

我构建了一个应用程序,允许用户使用omniauth-ldap对Active Directory进行身份validation。 如果这是新用户,则成功的身份validation将根据从AD返回的信息为其创建用户。 如果用户已存在,则只会将其登录。用户不会注册该应用程序,只需使用AD凭据登录即可。 我从不希望用户使用数据库凭据登录。

我无法弄清楚如何摆脱或改变一些路线。 例如,如果用户访问/ sign_in,他们将获得数据库身份validation。 如果用户访问sign_up,他们将被带到页面注册该站点。 我希望访问/ sign_in的用户进入LDAP登录,即/ users / auth / ldap。 我想我需要制作一个自定义路线,但我不确定我需要哪个控制器来引导用户。 我想让sign_up页面完全消失。

现在我有一个允许用户使用ldap登录的链接,其路径是user_omniauth_authorize_path(:ldap)。 我只是不确定如何将其转换为我的config / routes.rb文件理解的内容。 这就是我现在在路线上所拥有的。

devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" } do get 'sign_in', :to => 'devise/sessions#new', :as => :new_user_session get 'sign_out', :to => 'devise/sessions#destroy', :as => :destroy_user_session end 

当我运行rake路由时,我没有看到user_omniauth_authorize_path的任何路由,我认为是因为该路由是由设计生成的。 所以我认为我需要让我的路线指向一个设计控制器,但我似乎无法找到正确的路径。

尝试添加

 :skip => [:sessions, :registrations] to your routes.rb 

Smth是这样的:

 devise_for :users, :skip => [:sessions, :registrations] 

本方法可能会有所帮助 ,此外还有一个链接要经过 。