Ошибка при попытке аутентификации через Facebook с помощью omniauth - PullRequest
1 голос
/ 13 ноября 2011

Я следовал за Райаном Бейтсом Omniauth Part1 railscats http://railscasts.com/episodes/235-omniauth-part-1. Я ставлю аутентификацию в твиттере и Facebook с их секретными номерами и при попытке аутентификации через Facebook (auth / facebook) я получаю эту ошибку:

{
   "error": {
      "message": "Invalid redirect_uri: Given URL is not allowed by the Application configuration.",
      "type": "OAuthException"
   }
}

И когда я пытаюсь пройти аутентификацию через твиттер (auth / twitter), я получаю этот 401-й несанкционированный ответ. Я не знаю, как я могу это исправить

Спасибо, я исправил ввод http://127.0.0.1:3000 в поле обратного вызова твиттера и в фейсбуке поле моего сайта. Но теперь, когда я пытаюсь авторизоваться на Facebook, я получаю эту ошибку:

OpenSSL :: SSL :: SSLError

SSL_connect возвращено = 1 errno = 0 состояние = SSLv3 прочитанный сертификат сервера B: сбой проверки сертификата

Как я могу решить это? Я решил положить OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE в развитие .rb

Ответы [ 2 ]

1 голос
/ 14 ноября 2011

Эта ошибка появляется, когда ваш сервер работает по протоколу http.Вам нужно добавить этот фрагмент кода в your_project / script / rails перед APP_PATH

require 'rubygems'
require 'rails/commands/server'
require 'rack'
require 'webrick'
require 'webrick/https'

module Rails
    class Server < ::Rack::Server
        def default_options
            super.merge({
                :Port => 3000,
                :environment => (ENV['RAILS_ENV'] || "development").dup,
                :daemonize => false,
                :debugger => false,
                :pid => File.expand_path("tmp/pids/server.pid"),
                :config => File.expand_path("config.ru"),
                :SSLEnable => true,
                :SSLVerifyClient => OpenSSL::SSL::VERIFY_NONE,
                :SSLPrivateKey => OpenSSL::PKey::RSA.new(
                       File.open("/path_to_your/privatekey.pem").read),
                :SSLCertificate => OpenSSL::X509::Certificate.new(
                       File.open("/path_to_your/servercert.crt").read),
                :SSLCertName => [["CN", WEBrick::Utils::getservername]]
            })
        end
    end
end

Для создания самозаверяющих сертификатов прочитайте это руководство http://www.akadia.com/services/ssh_test_certificate.html (шаги с 1 по 4) или это www.tc.umn.edu / ~ brams006 / selfsign.html

После обновления скрипта rails измените URL с http://127.0.0.1:3000 на https://127.0.0.1:3000

1 голос
/ 13 ноября 2011

Я довольно часто сталкиваюсь с этой проблемой, когда Twitter находится в разработке.

Вероятно, проблема заключается в URL вашего обратного вызова в настройках вашего приложения.Попробуйте установить его:

http://127.0.0.1

и попробуйте снова.Если он не работает с http://localhost:3000, попробуйте его с http://127.0.0.1:3000

Возможно, проблема с Facebook также связана с URL-адресом обратного вызова в настройках приложения.Для Facebook моя site url настройка: http://localhost:3000/

...