Ограничить доступ пользователей к вызовам API? - PullRequest
0 голосов
/ 23 июня 2019

Я создаю api rest, чтобы быть бэкэндом для приложения обмена сообщениями.Я хочу, чтобы пользователь имел доступ только к своим данным.Например, user1 может вызывать / users / user1, но не / users / user2.Как бы я поступил так.

Итак, сначала пользователь войдет в систему и пройдет аутентификацию через свое имя пользователя и пароль.Но куда мне идти отсюда?Я думал о сохранении токена с данными пользователей, поэтому, когда они получают к нему доступ, я могу убедиться, что пара соответствует, но должен быть лучший способ сделать это.Нужно ли реструктурировать мой API?

1 Ответ

0 голосов
/ 24 июня 2019

После входа пользователя в систему вы должны предоставить ему токен или инициализировать сеанс для этого пользователя. При каждом последовательном вызове пользователь должен отправлять токен в API. Пока токен / сессия жив, пользователь должен иметь возможность вызывать API.

У вас должен быть способ проверки токена пользователя в серверной части для каждого вызова API. Очень популярный способ сделать это - использовать аутентификацию на основе JWT (JSON Web Tokens). Смотрите здесь пример использования python и flask: https://realpython.com/token-based-authentication-with-flask/

После проверки пользователя необходимо проанализировать идентификатор пользователя в запросе к базе данных, чтобы отфильтровать данные для этого пользователя.

Несмотря на то, что я не понимаю ваш полный вариант использования, похоже, что вам также необходимо реструктурировать вызовы API. Вы не должны предоставлять вызовы API для каждого пользователя. Что происходит, когда количество пользователей в вашей системе увеличивается динамически?

Таким образом, вы должны либо принять идентификатор пользователя в качестве параметра, либо позволить аутентификатору JWT позаботиться об этом.

Пример вызова API REST будет

GET /user/data?userId=1234
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...