使用Flask-OAuth

时间:2016-01-12 17:53:14

标签: python-3.x unicode oauth flask flask-oauthlib

我正在使用Flask-OAuth将Google的登录信息与Flask网站集成。

一切都很好。我可以毫无困难地授权登录并获得令牌等。但是,当我使用Flask-OAuth的get方法请求登录用户的电子邮件地址时,我收到错误消息:

TypeError: Unicode-objects must be encoded before hashing

我正在使用Python3,这有一个Python版本问题的味道,但我无法弄清楚我需要改变什么。

我正在使用的代码是:

def get_additional_data(self):
    access_token = session.get('oauth_token')
    headers = {'Authorization': 'OAuth ' + access_token[0]}
    return self.service.get(
        'https://www.googleapis.com/oauth2/v1/userinfo', None,
        headers=headers)

我不确定我可以在该请求中编码什么。即使我没有传递标题,我也会得到相同的错误(而不是无效的请求或类似的东西)。

我在oauth2/__init__.py上运行了2to3,并且建议的调整非常小,不应该阻止代码在Python 3中运行。此外,OAuth2相关的所有其他内容都在工作。

1 个答案:

答案 0 :(得分:1)

坏消息是这个问题的解决方案是切换到Flask-OAuthlib

好消息是Flask-OAuth需要进行很少的更改才能使其正常运行。