devise 1.5.3
、omniauth 1.0.1
、omniauth-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メソッドに入れることは可能ですが、それは一種の汚いとハックしているように感じます。
ご提案いただければ幸いです。
応答をありがとう!したがって、https://github.com/login/oauth/access_tokenの代わりにコールバックフェーズをoauth authorize urlに再度リダイレクトしますか? – LupineDev
あなたが言及したURLにリクエストを送信し、次に、オプションである、上記のURIでコールバックを取得します。 – ktkaushik