我正在搞亂WebFinger,並試圖創建一個小型的Rails應用程序,使用戶只能使用WebFinger帳戶登錄。我能成功地用手指自己,我回去跟下面的代碼片段的XRD文件:使用WebFinger和OpenID登錄
Link rel="http://specs.openid.net/auth/2.0/provider" href="http://www.google.com/profiles/{redacted}"/
其中,對我來說,讀,「我在URL一個OpenID 2.0登錄:http://www.google.com/profiles/{redacted}
」。但是,當我嘗試使用URL登錄,我收到以下錯誤
OpenID::DiscoveryFailure (Failed to fetch identity URL http://www.google.com/profiles/{redacted} : Error encountered in redirect from http://www.google.com/profiles/{redacted}: Error fetching /profiles/{Redacted}: Connection refused - connect(2)):
當我更換「https://www.google.com/accounts/o8/id」的個人資料網址,登錄完美的作品。
這裏是我使用的代碼(我使用RedFinger作爲一個插件,並Janrain的紅寶石的OpenID,而創業板安裝)
require "openid"
require 'openid/store/filesystem.rb'
class SessionsController < ApplicationController
def new
@session = Session.new
#render a textbox requesting a webfinger address, and a submit button
end
def create
#######################
#
# Pay Attention to this section right here
#
#######################
#use given webfinger address to retrieve openid login
finger = Redfinger.finger(params[:session][:webfinger_address])
openid_url = finger.open_id.first.to_s
#openid_url is now: http://www.google.com/profiles/{redacted}
#Get needed info about the acquired OpenID login
file_store = OpenID::Store::Filesystem.new("./noncedir/")
consumer = OpenID::Consumer.new(session,file_store)
response = consumer.begin(openid_url) #ERROR HAPPENS HERE
#send user to OpenID login for verification
redirect_to response.redirect_url('http://localhost:3000/','http://localhost:3000/sessions/complete')
end
def complete
#interpret return parameters
file_store = OpenID::Store::Filesystem.new("./noncedir/")
consumer = OpenID::Consumer.new(session,file_store)
response = consumer.complete params
case response.status
when OpenID::SUCCESS
session[:openid] = response.identity_url
#redirect somehwere here
end
end
end
是否有可能對我來說,使用URL我從我的WebFinger收到使用OpenID登錄?
當在www.google.com上獲取網址時,「連接被拒絕」?這是*非常*奇怪。 – keturn 2010-04-05 19:07:20