加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 22:56:47 所属栏目:百科 来源:网络整理
导读:我构建了一个应用程序,允许用户使用omniauth-ldap对Active Directory进行身份验证.如果这是新用户,则成功的身份验证将根据从AD返回的信息为其创建用户.如果用户已存在,则只会将其登录.用户不会注册该应用程序,只需使用AD凭据登录即可.我从不希望用户使用数据
我构建了一个应用程序,允许用户使用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 helpful和here is one more link to go through.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读