Flask 在后端没有db的情况下为API提供安全性

Flask 在后端没有db的情况下为API提供安全性,flask,Flask,我不熟悉堆栈溢出。我使用Flask开发了一个API,但我想给它增加安全性,这样只有那些拥有一些密钥的人才能运行它。后端没有数据库,是否有任何基于令牌或其他最新安全的方式运行API? 例如:app.route('/test')如果我使用本地主机/test运行它,那么它就会触发,同样的方式,团队中具有相同访问权限的任何人都不应该这么容易运行,除非我(生产者)向消费者提供一些密钥,并且消费者使用该密钥连接我的API 最好的方法是使用基本身份验证。这意味着,每当有人向您的端点发出请求时,他们都需要在请求

我不熟悉堆栈溢出。我使用Flask开发了一个API,但我想给它增加安全性,这样只有那些拥有一些密钥的人才能运行它。后端没有数据库,是否有任何基于令牌或其他最新安全的方式运行API?
例如:app.route('/test')如果我使用本地主机/test运行它,那么它就会触发,同样的方式,团队中具有相同访问权限的任何人都不应该这么容易运行,除非我(生产者)向消费者提供一些密钥,并且消费者使用该密钥连接我的API

最好的方法是使用基本身份验证。这意味着,每当有人向您的端点发出请求时,他们都需要在请求头中提供用户名和密码

这里有一个很好的例子:

从flask_httpauth导入HTTPBasicAuth
app=烧瓶(名称)
auth=HTTPBasicAuth()
@验证密码
def验证_密码(用户名、密码):
如果用户名=‘已批准的用户名’和密码=‘正确的密码’:
返回真值
返回错误
@应用程序路径(“/”)
@需要auth.login\u
def index():
返回“Hello,%s!”%auth.username()
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
app.run()
我稍微修改了它,通过删除动态用户查找使它变得更加简单


要使用它,您只需将
auth.login\u required
decorator添加到您希望保护的任何路由。

感谢您的回复,但上面的解决方案提示我输入username和pwd,我们可以从一些配置文件中读取username和pwd的任何其他解决方案,请?如果您试图从浏览器访问该路由,它将要求您输入用户名和密码,但通常不会从浏览器访问API。当您使用python、curl、JS等访问API时。。。您在请求的同时传递base 64编码的“username:password”字符串,无需在提示中输入任何内容。非常感谢您提供的信息,它成功了!!再需要一个帮助。。如何全天候运行此API(即使系统重新启动,也应在系统/服务器打开后运行)。在windows server中使用Waitress作为web服务器,当我运行python test.py时,它会在命令提示符下运行,当系统重新启动时,命令提示符将关闭。。。。需要Windows中的永久解决方案吗