• Flask-HTTPAuth基础案例


    介绍

    Flask-HTTPAuth 是一个基于全局的接口的校验登录

    安装

    pip install flask-httpauth
    

    使用

    flask-httpauth 提供了基于装饰器类型的视图函数校验,也可也结合falsk-restful进行接口类的校验,并且提供了两种校验的策略,分别是:

    用户名密码校验

    flask-httpauth使用者可以通过使用auth.verify_password从写校验函数,然后调用login_required方法使用

    案例一:直接使用

    from flask_httpauth import HTTPBasicAuth
    
    auth = HTTPBasicAuth()
    
    #设置校验,这里可以设置基于用户名和密码的自定义校验
    @auth.auth.verify_password
    def verify_password(username,password):
        if token:
            return True
        else:
            return False
            
    @app.route("/take_picture/",methods = ["get","post"])
    @app.login_require #这里使用方法启用校验
    def take_pricture():
    	.......
        return jsonify(jsondata)        
    

    案例二:配合视图类使用

    from flask_httpauth import HTTPBasicAuth
    
    auth = HTTPBasicAuth()
    
    #设置校验,这里可以设置基于用户名和密码的自定义校验
    @auth.auth.verify_password
    def verify_password(username,password):
        if token:
            return True
        else:
            return False
            
    class UserApi(Resource):
        decorators = [auth.login_required] #校验,类似装饰器函数
        ......
    
    

    token校验

    实际上大部分接口请求是通过token来校验身份的,并不是通过用户名和密码,所以可以有下面的使用方法

    案例一:直接使用

    from flask_httpauth import HTTPTokenAuth
    from package.jwt_token import check_token
    auth = HTTPTokenAuth(scheme='JWT') #auth.login_required
    
    #设置校验,这里可以设置基于用户名和密码的自定义校验
    @auth.verify_token
    def verify_token(token):
        if check_token(token):
            return True
        else:
            return False
    
    @app.route("/take_picture/",methods = ["get","post"])
    @app.login_require #这里使用方法启用校验
    def take_pricture():
    	.......
        return jsonify(jsondata)   
    

    案例二:配合视图类使用

    from flask_httpauth import HTTPTokenAuth
    from package.jwt_token import check_token
    auth = HTTPTokenAuth(scheme='JWT') #auth.login_required
    
    @auth.verify_token
    def verify_token(token):
        print(token)
        if check_token(token):
            return True
        else:
            return False
    
    class UserApi(Resource):
        decorators = [auth.login_required] #校验,类似装饰器函数
        def get(self,id):
            key_words = request.args.get("key_words")
            pass
            return "get 123"
        def post(self):
            return "post 123"
        def put(self,id):
            return "put 123"
        def delete(self,id):
            return "delete 123"
    
  • 相关阅读:
    aws s3文件上传设置accesskey、secretkey、sessiontoken
    HTTP的Referrer和Referrer Policy设置
    小技巧-mac修改finder菜单栏
    使用katalon自带Spy功能获取/验证控件Selector、XPath
    java的8种基础类型
    Mac-搭建Hadoop集群
    新公司入职56天后的面谈小结
    Java对字符串加密并返回星号※
    为什么要写设计文档
    在Linux上部署Web项目
  • 原文地址:https://www.cnblogs.com/bianjinhui/p/14481955.html
Copyright © 2020-2023  润新知