[英]How to Support Flask-SSE Access Control
Flask-SSE 文档——
https://flask-sse.readthedocs.io/en/latest/advanced.html#access-control
有一个小的访问控制示例——
@sse.before_request
def check_access():
if request.args.get("channel") == "analytics" and not g.user.is_admin():
abort(403)
我的用例是:我有两种类型的 SSE 端点,一种类型是公共的,比如在路由/sse/public/notice
,不需要身份验证检查; 还有带有路由/sse/private/<user_id>/balance
路由,我必须同时检查flask_login.current_user.is_authenticated and flask_login.current_user.get_id() == user_id
从 Flask-SSE 的简单示例中,我不确定如何实现对两种类型的 sse 端点的支持。
任何指针将不胜感激。
我是 Flask-SSE 的作者。 为什么不做这样的事情?
@sse.before_request
def check_access():
channel = request.args.get("channel") or "sse"
if channel.startswith("private."):
if current_user.is_anonymous:
abort(401)
user_id = channel[8:]
if current_user.get_id() != user_id:
abort(403)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.