Ruby, Sinatra, omniauth-github Грешка при удостоверяване Грешка при обратно извикване

добре, минаха повече от 5 часа и все още не стигам до къде. Това, което се опитвам да направя, е да настроя omniauth-gihub gem в едно от моите базирани на Ruby-Sinatra приложения. Следва това, което съм направил досега.

Добавени са скъпоценни камъни към Gemfile (и стартира команда за актуализиране на пакета, разбира се):

source 'https://rubygems.org'

gem 'sinatra'
gem 'haml'
gem 'shotgun'
gem 'omniauth', :git => 'git://github.com/intridea/omniauth.git'
gem 'omniauth-github', :git => 'git://github.com/intridea/omniauth-github.git'

Под моя файл app.rb имам следния код:

#imports
require 'rubygems'
require 'bundler'
require 'sinatra'
require 'omniauth'
require 'omniauth-github'
require 'haml'
require './helpers.rb'

#Configure OmniAuth
use OmniAuth::Builder do
  provider :github, ENV['api_key'], ENV['secret'], # Removing the key and secret for security reasons
  scope: "user,repo,gist"
end

#Application Settings
set :sessions, true
set :views, 'templates'


#Get Method for Application Root
get '/' do
  haml :index
end

#Get/Post Methods For Authentication
%w(get post).each do |method|
  send(method, "/auth/:provider/callback") do
    env['omniauth.auth']
  end 
end

Настройките на приложението Github са както следва:

URL = http://127.0.0.1:4567
Callback URL = http://127.0.0.1:4567/auth/github/callback

Сега, когато посещавам 127.0.0.1:4567/auth/github/callback, получавам следната грешка:

I, [2012-07-26T07:05:23.540462 #30458]  INFO -- omniauth: (github) Callback phase initiated.
E, [2012-07-26T07:05:23.540700 #30458] ERROR -- omniauth: (github) Authentication failure! invalid_credentials: OmniAuth::Strategies::OAuth2::CallbackError, OmniAuth::Strategies::OAuth2::CallbackError
localhost - - [26/Jul/2012:07:05:23 IST] "GET /auth/github/callback HTTP/1.1" 302 9
- -> /auth/github/callback
localhost - - [26/Jul/2012:07:05:23 IST] "GET /auth/failure?message=invalid_credentials&strategy=github HTTP/1.1" 404 448
- -> /auth/failure?message=invalid_credentials&strategy=github
localhost - - [26/Jul/2012:07:05:23 IST] "GET /favicon.ico HTTP/1.1" 404 447
- -> /favicon.ico

изглежда, че дори не се опитва да се свърже с github, мислех, че вече съм влязъл, така че излязох от github и опитах да посетя 127.0.0.4567/auth/github/callback отново и да, дори не се свързва или изпраща информация до github .

Проверих моя API ключ и тайната и те са правилни. Наистина не мога да разбера какво пропускам и съм наистина уморен. Всяка помощ или предложение ще бъдат много оценени.

РЕДАКТИРАНЕ::

Добре, открих, че кодът, предизвикващ грешката, е както следва в oauth2.rb

def callback_phase
    if request.params['error'] || request.params['error_reason']
      raise CallbackError.new(request.params['error'], request.params['error_description'] || request.params['error_reason'], request.params['error_uri'])
    end 
    if request.params['state'].to_s.empty? || request.params['state'] != session.delete('omniauth.state')
      raise CallbackError.new(nil, :csrf_detected)
    end

Чувствам, че има нещо общо с CSRF.


person Amyth    schedule 26.07.2012    source източник


Отговори (2)


Това може да представлява интерес: https://github.com/intridea/omniauth-github/issues/12

Получавах същата грешка като вас и добавянето на scope: 'user' го поправи вместо мен.

Виждам, че вече използвате обхват, но връзката може да ви постави на правилния път.

person emptywalls    schedule 27.07.2012
comment
Благодаря за отговора, вече минах през това. Освен това реших този проблем преди няколко часа, просто актуализирах gem файла omni-oauth2 до най-новата версия и актуализирах пакета. Евола! - person Amyth; 27.07.2012

Имах същия проблем - понижаването на omniauth-facebook до 1.4.0 го поправи за мен. https://github.com/mkdynamic/omniauth-facebook/issues/73

person Aidan Feldman    schedule 06.08.2012
comment
новата версия на omni-authfacebook има няколко грешки, с този проблем се сблъскват много потребители. Понижаването за момента е най-доброто решение в този момент. - person Amyth; 07.08.2012