首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让Ruby OpenID使用sreg1.1而不是1.0

如何让Ruby OpenID使用sreg1.1而不是1.0
EN

Stack Overflow用户
提问于 2015-12-09 05:51:48
回答 1查看 21关注 0票数 0

我需要将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

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2015-12-09 06:39:05

我终于找到了答案!我必须创建一个新的sreg请求,然后使用1.1

代码语言:javascript
复制
       sregreq = OpenID::SReg::Request.new
       # required fields
       sregreq.request_fields(['email'], true)
       # optional fields
       sregreq.request_fields(['fullname'], false)
       oidreq.add_extension(sregreq)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34166707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档