ruby-on-rails – 仅在使用omniauth进行身份验证时配置路由

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 仅在使用omniauth进行身份验证时配置路由前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我构建了一个应用程序,允许用户使用omniauth-ldap对Active Directory进行身份验证.如果这是新用户,则成功的身份验证将根据从AD返回的信息为其创建用户.如果用户已存在,则只会将其登录.用户不会注册该应用程序,只需使用AD凭据登录即可.我从不希望用户使用数据库凭据登录.

我无法弄清楚如何摆脱或改变一些路线.例如,如果用户访问/ sign_in,他们将获得数据库身份验证.如果用户访问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]

This How To may be helpfulhere is one more link to go through.

猜你在找的Ruby相关文章