是否需在每个请求中调用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
相关产品推荐
相关产品推荐

