Разработка omniauth-github oauth2 ошибка "bad_verification_code" - PullRequest
4 голосов
/ 30 января 2012

У меня есть приложение Rails 3.1 с devise 1.5.3, omniauth 1.0.1 и omniauth-github 1.0.1.

config / initializers / devise.rb

config.omniauth :github, ENV['GITHUB_KEY'], ENV['GITHUB_SECRET']

config / rout.rb

devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" } do
  get '/users/auth/:provider' => 'users/omniauth_callbacks#passthru'
end

Ключ и секрет задаются как переменные Heroku, и приложение регистрируется на Github.Нажав на ссылку, вы отправляете ее на Github, аутентифицируете, а затем отправляете обратно на маршрут обратного вызова Github с кодом и всей информацией о том, что аутентификация прошла успешно.

Проблема заключается в том, что он выбирается методом сбояusers/omniiauth_callbacks контроллера.Я добавил несколько операторов put, чтобы узнать, с чего отправлялся env['omniauth'].

env['omniauth.auth'] содержит всю информацию от Github, которую он должен.

env['omniauth.error'].response однако это OAuth2::Response с большим количеством информации, важными частями которой являются:

@parsed={"error"=>"bad_verification_code"}, @error=#<OAuth2::Error: OAuth2::Error>

Мне интересно, если этот пост все еще действителен, поскольку Github теперь имеет их новый v3 API .

Можно было бы просто поместить нужный мне код вметод отказа контроллера обратного вызова, но он выглядит грязным и хакерским.

Буду признателен за любые предложения.

1 Ответ

0 голосов
/ 08 февраля 2012

Я не совсем уверен, поможет ли это, но только вчера, когда я пытался пройти аутентификацию с помощью github, используя omniauth gem, я вроде как получал те же ошибки.

В конце концов, я закончил делать это github способом отправки client_id, client_secret и redirect_uri на /github.com/oauth/authorize и получил обратный вызов на redirect_uri.

Вот ссылка

...