Python Flask RESTful API -- HTTPAuth

1、编写背景

    使用Flask 编写的RESTful API,都是完全开放的,任何客户端都能随意调用,如果只是纯粹编写Demo级别的API,倒无所谓,如果企业级开发,必然会涉及到API的安全调用问题, 接下来我们一起探讨这个话题。

2、Flask-HTTPAuth

  我们引入 Flask-HTTPAuth 安全机制,客户端要使用API需要录入用户名和密码。

  2.1 创建项目

    Pycharm创建项目Flask-HTTPAUTH:

               

     项目结构:

    

  2.2 引入Flask-HTTPAUTH

  打开终端,安装Flask-HTTPAuth:

pip install Flask-HTTPAuth

 

    

  使用pip list检查是否安装的组件列表

  

pip list

       

  2.3 编写代码

  在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 = {
    "john":"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,再次运行,成功:

  

      

  

 

posted on 2018-03-25 19:24  Kingly  阅读(934)  评论(0编辑  收藏  举报