1、编写背景
使用Flask 编写的RESTful API,都是完全开放的,任何客户端都能随意调用,如果只是纯粹编写Demo级别的API,倒无所谓,如果企业级开发,必然会涉及到API的安全调用问题, 接下来我们一起探讨这个话题。
2、Flask-HTTPAuth
我们引入 Flask-HTTPAuth 安全机制,客户端要使用API需要录入用户名和密码。
2.1 创建项目
在IDE Pycharm中创建项目名为Flask-HTTPAUTH:
项目结构:
2.2 引入Flask-HTTPAUTH
打开终端,安装Flask-HTTPAuth:
pip install Flask-HTTPAuth
安装完毕,接着使用
pip list
显示组件列表,检查是否成功安装。
2.3 编写代码
在项目新增python文件Flask-HTTPAUTH.py,准备编写代码:
# coding=UTF-8
from flask import Flask
#https://github.com/miguelgrinberg/flask-httpauth
#安装flask-httpauth后,在PyCharm-Preferences-Project-Interpreter-增加flask-httpauth
from flask_httpauth import HTTPBasicAuth
app = Flask(__name__)
auth = HTTPBasicAuth()
users = {
"kingly":"hello",
"susan":"bye"
}
@auth.get_password
def get_pwd(username):
if username in users:
return users.get(username)
return None
@app.route('/')
@auth.login_required
def index():
return 'Hello %s!!' % auth.username()
if __name__ == '__main__':
app.run()
2.4 运行
点击运行,报错:No module named flask_httpauth,后来找出问题了,虽然我们安装好了Flask-HTTPAuth,但项目没有引入。
PyCharm -> Preferences -> Project -> Interpreter -> 增加flask-httpauth
增加Flask-HTTPAuth,点击下面的 + ,搜索组件,输入 Flask-HTTP,选中Flask-HTTPAuth,点击下面的Install Package:
增加后,点击OK,再次运行,成功,打完收工!
网友评论