瓶SSE-DOC -
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
从瓶-SSE的简单的例子,我不知道我怎样才能实现支持两种类型的SSE端点。
任何指针将不胜感激。
我瓶-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)