设计omniauth-github oauth2错误“bad_verification_code”

时间:2012-01-29 20:06:56

标签: ruby-on-rails oauth devise omniauth github-api

我有一个带有devise 1.5.3omniauth 1.0.1omniauth-github 1.0.1的Rails 3.1应用。

配置/初始化/ devise.rb

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

配置/ routes.rb中

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

密钥和密钥设置为Heroku变量,应用程序在Github上注册。单击您发送给Github的链接,进行身份验证,然后使用代码和auth成功的所有信息发送回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> ,重要的部分是:

{{1}}

我想知道这篇文章是否仍然有效,因为Github现在有new v3 API

有可能只将我需要的代码放在回调控制器的失败方法中,但感觉有点肮脏和hackish。

我们非常感谢任何建议。

1 个答案:

答案 0 :(得分:0)

我不确定这是否会有所帮助,但仅在昨天,当我尝试使用omniauth gem与github进行身份验证时,我有点得到同样的错误。

最后,我最终以github的方式将client_id,client_secret和redirect_uri发送到/github.com/oauth/authorize并获得了redirect_uri的回调。

Heres the link