2012-01-29 31 views
4

devise 1.5.3omniauth 1.0.1omniauth-github 1.0.1のRails 3.1アプリもあります。Devise omniauth-github oauth2エラー "bad_verification_code"

設定/初期化子/ devise.rb

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

のconfig/routes.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、重要な部品である:Githubのが今ではnew v3 APIを持っているため、この記事がまだ有効である場合、私は疑問に思って

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

私が必要とするコードをコールバックコントローラのfailureメソッドに入れることは可能ですが、それは一種の汚いとハックしているように感じます。

ご提案いただければ幸いです。

答えて

0

私はこれを支援するつもりですが、私はomniauth宝石を使用してgithubのを使用して認証しようとしていた場合にのみ、昨日、私はちょっと同じエラーを取得した場合は本当にわかりません。

最後に、私はclient_id、client_secret、およびredirect_uriを/github.com/oauth/authorizeに送信するgithubの方法を実行し、redirect_uriでコールバックを取得しました。

Heres the link

+0

応答をありがとう!したがって、https://github.com/login/oauth/access_tokenの代わりにコールバックフェーズをoauth authorize urlに再度リダイレクトしますか? – LupineDev

+0

あなたが言及したURLにリクエストを送信し、次に、オプションである、上記のURIでコールバックを取得します。 – ktkaushik

関連する問題