如何在Python中使用HTTPTokenAuth()保护WebAPI接口
发布时间:2023-12-24 15:27:45
在Python中,可以使用Flask框架的HTTPTokenAuth插件来保护Web API接口。HTTPTokenAuth插件基于Token进行身份验证和授权。
下面是一个使用HTTPTokenAuth的示例:
1. 首先,确保你已经安装了Flask和flask_httpauth模块:
pip install Flask flask_httpauth
2. 导入相关的模块和类:
from flask import Flask from flask_httpauth import HTTPTokenAuth
3. 创建Flask应用程序和HTTPTokenAuth对象:
app = Flask(__name__) auth = HTTPTokenAuth()
4. 创建一个字典来存储用户和对应的Token:
tokens = {
"user1": "token1",
"user2": "token2"
}
5. 定义一个验证Token的回调函数:
@auth.verify_token
def verify_token(token):
if token in tokens.values():
return True
return False
6. 使用auth.login_required装饰你想要保护的API路由:
@app.route('/api')
@auth.login_required
def api():
return "Authenticated API"
7. 运行Flask应用程序:
if __name__ == '__main__':
app.run()
现在在浏览器或使用curl等工具中访问http://localhost:5000/api,需要在请求的header中添加Authorization字段,值为Token token1,其中token1是用户"user1"的Token,如果提供的Token是有效的,将返回"Authenticated API"。
这个示例演示了如何使用HTTPTokenAuth插件来保护Web API接口。你可以根据自己的需要修改验证Token的逻辑和保护的API路径。
