zoukankan      html  css  js  c++  java
  • 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"
    
  • 相关阅读:
    自己动手搭建私有百度网盘
    JVM 基础、堆内存分析和垃圾回收算法
    基于 Solo 通过阿里云服务器+Docker+Nginx+MySQL搭建个人博客
    ES6新特性总结
    JavaIO流总结
    Linq查找最大值max最小值min效率比较
    c# 控制台console进度条
    在 dotnet core (C#)下的颜色渐变
    go笔记--几个例子理解context的作用
    go微服务框架kratos学习笔记六(kratos 服务发现 discovery)
  • 原文地址:https://www.cnblogs.com/bianjinhui/p/14481955.html
Copyright © 2011-2022 走看看