1

我有一个简单的 Python 服务器来验证 Google oauth2 id_tokens。当此代码执行时,它会引发错误AppIdentityError: Wrong recipient

def verify():
    id_token = request.form['id_token']
    status = {}
    if id_token is not None:
        try:
            jwt = verify_id_token(id_token, config['google']['clientId'])
            status['valid'] = True
            status['jwt'] = jwt
        except AppIdentityError:
            status['valid'] = False
            status['message'] = "Invalid id token"
    pprint.pprint(status)
    response = make_response(json.dumps(status))
    response.headers['Content-Type'] = 'application/json'
    return response

是什么AppIdentityError: Wrong recipient意思,我该如何解决?

4

1 回答 1

0

您尝试验证的 JWT 包含一个受众 ( aud) 值。该错误是aud值与预期值不匹配的结果。

我不确定您使用的是哪个库,但在 identity-toolkit-python-client 包中,VerifyGitTotken 函数会查看为验证 JWT 而提供的 project_id 和 client_id 值。

当我遇到这个错误时,原来我的 gitkit-server-config.json 文件与 Google 开发者控制台提供的不匹配。这些值在 API Manager >> Overview >> Identity Toolkit API 页面上提供。

我更正了我的 json 文件,错误消失了。

于 2016-01-20T23:50:15.710 回答