我有一個Rails 3.1應用程序,其中devise 1.5.3
,omniauth 1.0.1
和omniauth-github 1.0.1
也是如此。設計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回調路由,並附上代碼和auth成功的所有信息。
問題是,它正在被控制器的故障方法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上都有自己的new v3 API。
只需將我需要的代碼放在回調控制器的失敗方法中,但感覺有點髒和駭人聽聞就可能了。
任何建議將不勝感激。
感謝您的迴應!所以你會重新將回調階段重定向到oauth授權url,而不是https://github.com/login/oauth/access_token? – LupineDev 2012-02-15 18:17:01
向你提到的url發送一個請求,然後在提到的uri上進行回調,這是可選的。 – ktkaushik 2012-02-16 05:49:32