我需要将OpenID sreg的名称空间设置为http://openid.net/extensions/sreg/1.1,而不是http://openid.net/sreg/1.0。如何将OpenID设置为使用1.1?我可以在初始化器中设置一些东西吗?或者还有其他我没有设置的东西,使得openid认为它不能使用sreg 1.1?
更具体地说,我需要
openid.ns.ext0=http://openid.net/extensions/sreg/1.1
而不是
openid.ns.ext0=http://openid.net/sreg/1.0
def open_id
begin
oidreq = openid_consumer.begin 'https://openid.intuit.com/openid/xrds'
rescue OpenID::DiscoveryFailure => why
"Sorry, we couldn't find your identifier '#{openid}'"
else
oidreq.add_extension_arg('sreg','required','email')
oidreq.add_extension_arg('sreg','optional','fullname')
redirect_to oidreq.redirect_url(root_url, root_url + "open_id_complete")
end
end
def self.openid_store
@openid_store ||= OpenID::Store::Memory.new
end
def openid_consumer
@openid_consumer ||= OpenID::Consumer.new(session, self.class.openid_store)
end
end发布于 2015-12-09 06:39:05
我终于找到了答案!我必须创建一个新的sreg请求,然后使用1.1
sregreq = OpenID::SReg::Request.new
# required fields
sregreq.request_fields(['email'], true)
# optional fields
sregreq.request_fields(['fullname'], false)
oidreq.add_extension(sregreq)https://stackoverflow.com/questions/34166707
复制相似问题