pythonopenid不提供ax或sreg属性

2024-09-24 08:28:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我终于能够让python openid对用户进行身份验证,但是我无法创建sreg.SRegResponse公司或者ax.FetchResponse当他们回来的时候。这是来自一个googleapps帐户,我试图遵循https://github.com/openid/python-openid/tree/master/examples/djopenid中的示例。我听说Google的OpenID系统有点古怪,需要做一些调整,比如Retrieve OpenID AX attributes from Google / Yahoo in Rails

    response = c.complete(request_args, return_to)

    sreg_response = sreg.SRegResponse.fromSuccessResponse(response)
    ax_response = ax.FetchResponse.fromSuccessResponse(response)

响应肯定会成功返回,但我看到以下错误消息,可能与此相关:

^{pr2}$

这是我的设置。在

           sreg_request = sreg.SRegRequest(optional=['email', 'nickname'],
                                        required=['dob'])
            auth_request.addExtension(sreg_request)

            # Add Attribute Exchange request information.
            ax_request = ax.FetchRequest()
            # XXX - uses myOpenID-compatible schema values, which are
            # not those listed at axschema.org.
            ax_request.add(ax.AttrInfo('http://schema.openid.net/namePerson',
                                       required=True))
            ax_request.add(ax.AttrInfo('http://schema.openid.net/contact/web/default',
                                       required=False, count=ax.UNLIMITED_VALUES))
            auth_request.addExtension(ax_request)

Tags: authaddresponserequestschemagooglerequiredax
1条回答
网友
1楼 · 发布于 2024-09-24 08:28:43

我遇到了Google没有返回AttributeExchange的schema.openid.net值的问题。正如您所提到的,它没有返回任何内容,最糟糕的是,当我第一次编写OpenID处理程序时,它一直在工作。在

当我在实现中切换到axschema值时,它就像一个魅力。例如:

    URLS = {
      'ax_email': 'http://axschema.org/contact/email',
      'ax_first': 'http://axschema.org/namePerson/first',
    }

    ...

    ax_request = ax.FetchRequest()
    ax_request.add(ax.AttrInfo(URLS['ax_email'], required = True))
    ax_request.add(ax.AttrInfo(URLS['ax_first'], required = True))

    auth_request.addExtension(ax_request)

相关问题 更多 >