python auth_error ai_generated true

fastapi.exceptions.HTTPException: 401 Unauthorized: Token expired

ID: python/fastapi-oauth2-token-expired

Also available as: JSON · Markdown · 中文
80%Fix Rate
84%Confidence
0Evidence
2025-10-15First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
3.9 active
3.10 active

Root Cause

OAuth2 令牌已过期,需要刷新

generic

中文

OAuth2 令牌已过期,需要刷新

Workarounds

  1. 90% success 实现令牌刷新机制
    from fastapi.security import OAuth2PasswordBearer
    oauth2_scheme = OAuth2PasswordBearer(tokenUrl='token', auto_error=False)
    @app.post('/refresh')
    def refresh(token: str = Depends(oauth2_scheme)):
        new_token = create_access_token(...)
        return {'access_token': new_token}
  2. 85% success 在客户端捕获 401 并刷新令牌
    response = requests.get(url, headers={'Authorization': f'Bearer {token}'})
    if response.status_code == 401:
        token = refresh_token()
        response = requests.get(url, headers={'Authorization': f'Bearer {token}'})

Dead Ends

Common approaches that don't work:

  1. 忽略过期并继续使用旧令牌 95% fail

    服务器会拒绝请求

  2. 延长令牌有效期而不刷新 70% fail

    安全风险增加