烧瓶安全性到后端没有数据库的API



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

执行此操作的最佳方法是使用基本身份验证。这意味着,每次有人向您的终端节点发出请求时,他们都需要在请求的标头中提供用户名和密码。

一个很好的最小示例位于此处:https://flask-httpauth.readthedocs.io/en/latest/

from flask_httpauth import HTTPBasicAuth
app = Flask(__name__)
auth = HTTPBasicAuth()
@auth.verify_password
def verify_password(username, password):
if username == 'approved_username' and password == 'correct-password':
return True
return False
@app.route('/')
@auth.login_required
def index():
return "Hello, %s!" % auth.username()
if __name__ == '__main__':
app.run()

我稍微修改了一下,通过删除动态用户查找使其更加简单。

要使用它,您只需将auth.login_required装饰器添加到要保护的任何路由中。

最新更新