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

是否需在每个请求中调用Authlib的parse_id_token方法?

关于FastAPI中Auth0登录后Token验证的疑问

我正在遵循Auth0的Python Web应用登录集成指南,在FastAPI应用中完成了所有步骤,目前应用能正常运行,登录后也能把Token存入会话。

但我有个疑问:后续请求里该怎么验证这个Token?

指南里的示例代码只是将会话传入模板渲染:

@app.route("/")
def home():    
    return render_template("home.html", session=session.get('user'), pretty=json.dumps(session.get('user'), indent=4))

模板里也只检查会话是否存在:

{% if session %}    
    <h1>Welcome {{session.userinfo.name}}!</h1>    
    <p><a href="/logout">Logout</a></p>
{% else %}    
    <h1>Welcome Guest</h1>    
    <p><a href="/login">Login</a></p>
{% endif %}

但只检查会话里Token的存在显然不够安全,对吧?

我在Authlib的代码里找到了parse_id_token方法,于是加了个中间件,想在每个请求里调用它来验证:

@app.middleware("http")
async def authenticate_request(request: Request, call_next):    
    subject = request.session.get("subject")    
    userinfo = await oauth.auth0.parse_id_token(get, nonce=get['userinfo']['nonce'])    
    ...    
    return await call_next(request)

请问这是不是验证登录后所有请求的正确方式?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 12:30:05