2012-01-29 5 views
4

devise 1.5.3, omniauth 1.0.1omniauth-github 1.0.1이있는 레일 3.1 앱이 있습니다.Devise omniauth-github oauth2 오류 "bad_verification_code"

설정/초기화/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 콜백 경로로 되돌려 보냅니다.

문제는 그것이 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> 

.

단지 내가 콜백 컨트롤러의 고장 방법에 필요한 코드를 삽입 할 수있을 것이다 그러나 그것은 종류의 더럽고 hackish 느낀다.

모든 의견을 많이 주시면 감사하겠습니다. 내가 omniauth 보석을 사용하여 github에 인증을 시도 할 때 나는이 도움이 될 경우 정말 확실하지만, 어제 아니다

답변

0

, 내가 좀 동일한 오류를 얻고 있었다.

결국 나는 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 권한 부여 URL로 다시 리디렉션 하시겠습니까? – LupineDev

+0

당신이 언급 한 URL에 요청을 보낸 다음 언급 된 URI에 콜백을받습니다. 이것은 다시 선택 사항입니다. – ktkaushik