Flask Безопасность по API без базы данных в бэкэнде - PullRequest
0 голосов
/ 06 февраля 2020

Я новичок в переполнении стека. Я разработал API с использованием Flask, но я хочу повысить его безопасность, чтобы его могли запускать только те, у кого есть ключ. Нет базы данных на бэкэнде, есть какой-нибудь токен или другой последний безопасный способ запуска API? Например, для app.route ('/ test'), если я запускаю его с помощью local_host / test, то он срабатывает так же, как никто из команды с таким же доступом не должен так легко работать до тех пор, пока я (продюсер) не предоставлю какой-то ключ к Consumer и Consumer использует этот ключ для подключения моего API.

1 Ответ

0 голосов
/ 06 февраля 2020

Лучший способ сделать это с базовой аутентификацией 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 защитите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...