仅使用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]
本方法可能会有所帮助 ,此外还有一个链接要经过 。
- SSL_connect SYSCALL返回= 5 errno = 0 state = SSLv2 / v3读取服务器hello A – Faraday :: Error :: ConnectionFailed
- Rails 4 Devise / Omniauth电子邮件存在于数据库错误中
- 如何检查用户是否使用omniauth登录
- 使用google_oauth2获取“错误:redirect_uri_mismatch”
- Twitter ::错误::在PostsController中未经授权#create – 令牌无效或过期
- puma生产服务器在后台:omniauth记录到stdout失败导致错误
- 使用Ajax进行Omniauth授权调用
- WEBrick:RequestURITooLarge:我应该更新或使用其他服务器吗?
- 与Devise on Rails一起使用单独的身份validation模型