Python - Google OAuth2 - 令牌中的段数错误
Python - Google OAuth2 - Wrong number of segments in token
我正在尝试将我的 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
您传递的是 access_token 而不是 id_token。
当您启动 Google 登录时,它会向您发送 "code" 然后您将其传递给令牌端点,它会为您提供三样东西。 access_token、id_token 和 refresh_token(基于条件)。
该函数想要的是 id_token.
我正在尝试将我的 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
您传递的是 access_token 而不是 id_token。 当您启动 Google 登录时,它会向您发送 "code" 然后您将其传递给令牌端点,它会为您提供三样东西。 access_token、id_token 和 refresh_token(基于条件)。 该函数想要的是 id_token.