如何在Rails OAuth请求中设置参数?

问题描述 投票:1回答:2

我有一个使用omniauth-github gem的Rails应用程序。根据Github documentation,我可以在初始请求中将参数allow_signup设置为false,这样用户只有在已经拥有Github帐户的情况下才能登录我的应用程序。这是我想要的行为。

我无法弄清楚的部分是:我应该在哪里设置这个参数?我已将其添加到登录链接路径("auth/github?allow_signup=false"),但这不起作用。这应该在provider :github内的config/initializers/omniauth.rb线吗?怎么样?

ruby-on-rails github omniauth
2个回答
0
投票

您应该将参数显式传递给provider函数。所以请尝试以下代码段。

provider :github, ENV['GITHUB_KEY'], ENV['GITHUB_SECRET'], allow_signup: 'true', scope: 'user,repo,gist'

0
投票

这就是我开始工作的方式:

# config/initializers/omniauth.rb

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :github,
    ENV['GITHUB_KEY'],
    ENV['GITHUB_SECRET'],
    {
      client_options: {
        authorize_url: 'https://github.com/login/oauth/authorize?allow_signup=false'
      }
    }
end

显然它也适用于Devise,用provider取代config.omniauth并将其放在config/initializers/devise.rb中。

© www.soinside.com 2019 - 2024. All rights reserved.