Как мне установить параметр в OAuth-запросе Rails? - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть приложение Rails, которое использует гем omniauth-github.Согласно документации Github , я могу установить для параметра allow_signup значение false в первоначальном запросе, чтобы пользователи могли войти в мое приложение, только если у них уже есть учетная запись Github.Это мое желаемое поведение.

Часть, которую я не смог выяснить, такова: где именно я должен установить этот параметр?Я добавил его в путь ссылки входа ("auth/github?allow_signup=false"), но это не работает.Должно ли это быть в строке provider :github в пределах config/initializers/omniauth.rb?Как именно?

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Вот как я заставил его работать:

# 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 вместо.

0 голосов
/ 25 февраля 2019

Вы должны явно передать параметр в функцию provider.Поэтому, пожалуйста, попробуйте следующий фрагмент.

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