介绍
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"