Лучший способ сделать это с базовой аутентификацией c. Это означает, что каждый раз, когда кто-то делает запрос к вашей конечной точке, он должен предоставить имя пользователя и пароль в заголовке вместе с запросом.
Отличный минимальный пример находится здесь: 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()
Я немного изменил его, чтобы сделать его еще проще, удалив динамический c пользовательский поиск.
Чтобы использовать это, вам просто нужно добавить auth.login_required
Декоратор на любой маршрут, который вы sh защитите.