繁体   English   中英

如何支持 Flask-SSE 访问控制

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM