使用 Python OpenID 库将 openid_shutdown_ack 参数传递给我的应用程序

passing openid_shutdown_ack parameter to my applicion using the Python OpenID library

我有一个应用程序正在使用 Python OpenID 库。我用它来根据 google 帐户验证我的应用程序。

Google 正在弃用 OpenID 2.0 身份验证。要购买一些额外的迁移时间,请允许一个额外的参数 ( google docs openID )。

如何使用 Python OpenID 库将传递的 openid_shutdown_ack 参数添加到我的应用程序?

我发现以下解决方案扩展了 AuthRequest 的 getMessage 方法

def extend_with_openid_shutdown_ack(self, realm, return_to=None, immediate=False):
    message = consumer.AuthRequest.getMessage(self, realm, return_to, immediate)
    message.setArg(consumer.BARE_NS, 'openid_shutdown_ack','2015-04-20')
    return message

然后当我从消费者 begin() 方法返回请求实例时替换实例的函数

request.getMessage = extend_with_openid_shutdown_ack.__get__(request, type(request))