You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Postman调用API始终返回Token is invalid问题求助

排查JWT无效token问题

针对调用/user接口返回Token is invalid !!的问题,按以下步骤逐一排查:

1. 检查Token格式

你提供的token带有双引号,必须去掉双引号后再粘贴到Postman的x-access-token请求头中。如果保留双引号,JWT解码时会把引号当作token的一部分,直接导致验证失败。

2. 确认Token是否过期

你的token payload中的exp字段值为1658755605,转换为北京时间是2022年7月25日10:06:45,目前已过期。过期的token会被JWT库直接判定为无效,需要重新生成有效的token。

可以用以下代码验证token的过期状态(忽略过期验证查看payload):

import jwt
from your_app_module import app  # 替换为你的Flask应用模块

token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwdWJsaWNfaWQiOiJmY2Y2OTBmNS0wNGViLTRjYzUtOTQ0ZC01M2ZkMDU4MjMxNTkiLCJleHAiOjE2NTg3NTU2MDV9.oNc7J2oT7ux-t1I-DioA0Lwf22ArWbGxrrkNsmIOZ10"

try:
    # 忽略过期验证,查看token内容
    payload = jwt.decode(token, app.config['SECRET_KEY'], options={"verify_exp": False})
    print("Token payload:", payload)
except Exception as e:
    print("解码错误:", str(e))

3. 验证SECRET_KEY一致性

生成token时使用的SECRET_KEY必须和验证时(jwt.decode中调用的app.config['SECRET_KEY'])完全一致,包括大小写、特殊字符、空格等。检查生成token的代码,确认密钥和当前接口使用的密钥是同一个。

4. 检查JWT算法匹配

你的token头部指定算法为HS256,验证时建议显式指定算法,避免因默认算法不匹配导致失败:
修改token_required装饰器中的解码代码:

data = jwt.decode(token, app.config['SECRET_KEY'], algorithms=["HS256"])

5. 确认用户存在性

解码token后得到的public_id为fcff690f5-04eb-4cc5-944d-53fd05823159,检查数据库中是否存在该public_id的用户。

6. 核对请求头名称

确保Postman中添加的请求头键为x-access-token,严格保持和代码中的键名一致可以避免潜在问题。

内容的提问来源于stack exchange,提问作者Rishav Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 22:24:13