Python - Google OAuth2 - 令牌中的段数错误

问题描述 投票:0回答:1

我正在尝试将我的Android Flutter项目连接到我的Flask API服务器,并且客户端应用程序按预期工作。问题是即使将OAuth2访问令牌硬编码到服务器中也会出现以下错误消息。我很困惑为什么它甚至发生。有关Python后端OAuth2处理的官方Google文档是here

错误消息:Wrong number of segments in token: b'ya29.GluNBQsv_8FW2-jjI0w.....

码:

import flask
from flask import jsonify, request, redirect, url_for
from google.oauth2 import id_token
from google.auth.transport import requests

#### SKIPPED INIT AND OTHER CODE ####

@app.route('/', methods=['POST'])
def index():
    token = "ya29.GluNBQsv_8FW2....." # 129 chars in total

    try:
        idinfo = id_token.verify_oauth2_token(token, requests.Request(), None)
        print(idinfo['email'])
    except Exception as ex:
        print(ex)
        data = {
            'status': 403,
            'message': 'Authorization required',
        }
        response = jsonify(data)
        response.status_code = 403
        return response
python flask google-oauth google-authentication google-api-python-client
1个回答
1
投票

你传递的是access_token,而不是id_token。当你发起谷歌登录时,它会发送一个“代码”然后你把它传递给令牌终点,它给你三件事。 access_token,id_token和refresh_token(基于条件)。该函数想要的是id_token。

© www.soinside.com 2019 - 2024. All rights reserved.