【问题标题】:Unicode-objects must be encoded before hashing when requesting data using Flask-OAuth使用 Flask-OAuth 请求数据时,Unicode 对象必须在散列之前进行编码
【发布时间】:2016-04-17 11:25:15
【问题描述】:

我正在使用 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 相关的所有其他内容都可以正常工作。

【问题讨论】:

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


    【解决方案1】:

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

    好消息是它只需要对 Flask-OAuth 进行很少的更改即可使其正常工作。

    【讨论】:

      猜你喜欢
      • 2019-08-21
      • 1970-01-01
      • 2016-10-12
      • 1970-01-01
      • 2020-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多