我跟随了Ryan Bates 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"
}
}
当我尝试通过twitter(auth / twitter)进行身份验证时,我得到了这个401 Unauthorized响应。我不知道如何纠正它
谢谢我更正了在Twitter网址回拨字段和facebook我的网站字段中输入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
放入development.rb
答案 0 :(得分:1)
我在开发过程中经常会遇到这个问题。
问题可能是您的应用设置中的回调网址。尝试将其设置为:
http://127.0.0.1
再试一次。如果它不起作用http://localhost:3000
,请从http://127.0.0.1:3000
Facebook的问题也可能是应用设置中的回调网址。对于Facebook,我的site url
设置为:http://localhost:3000/
答案 1 :(得分:1)
当您的服务器在http协议上运行时,会出现该错误。您需要在APP_PATH
之前在your_project / script / rails中添加这段代码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脚本后,将网址从http://127.0.0.1:3000
更改为https://127.0.0.1:3000