decorators.py 文件源码

python
阅读 24 收藏 0 点赞 0 评论 0

项目:flask-vue-example 作者: levi-lq 项目源码 文件源码
def login_required(func):
    """
    desc:   ???????

    """
    @wraps(func)
    def _decorator_func(*args, **kwargs):
        if request.authorization is None:
            content_type = request.headers["Content-Type"]
            if "application/x-www-form-urlencoded" in content_type:
                data = request.form.to_dict()
            elif "application/json" in content_type:
                data = request.get_json()
            elif "multipart/form-data" in content_type:
                data = request.get_json()
                if data is None:
                    data = request.form.to_dict()
            else:
                raise error_handlers.BadToken(http_responses.HTTP_400_BAD_REQUEST(msg={"error": u"????"}))
            if not isinstance(data, dict):
                raise error_handlers.BadToken(http_responses.HTTP_400_BAD_REQUEST(msg={"error": u"???json????"}))
            token = data.get("token", None)
            if token is None:
                raise error_handlers.MissToken(
                    http_responses.HTTP_400_BAD_REQUEST(msg={"error": u"???????token"})
                )
        else:
            token = request.authorization["username"]

        g.user = User.verify_auth_token(token)

        # ????
        identity = g.cache.get(token)

        if identity is not None:
            g.identity = pickle.loads(identity)
        return func(*args, **kwargs)

    return _decorator_func
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号