У меня довольно простая настройка API в стеке MEAN с использованием PassportJS. У меня нет проблем с настройкой маршрутов без безопасности (захват общих данных) и с помощью аутентификации пользователя (защищенная информация). Тем не менее, я не могу найти лучшие практики для предоставленного пользовательского доступа.Как ограничить API REST конкретным контентом
Например: /api/users /: id - это маршрут, требующий аутентификации. Таким образом, вы никогда не сможете получить информацию о пользователе без токена доступа.
Однако, как только у меня есть токен, я могу просто отправить его с запросом и другим идентификатором ELSE, чтобы получить доступ к их контенту, а не к его собственному. Хотя, id - это долгие беспорядочные вещи, если кто-то, кто хочет получить идентификатор человека из системы, им нужен только собственный пароль для доступа к этим данным.
Я решил сохранить токен в новой коллекции, называемой сессиями, и выполнить дополнительную проверку в соответствии с комбинацией token/userId. Но я не знаю, является ли это лучшей практикой.
Содержит ли Паспорт это авто-магическое, и я пропустил эту часть?
Спасибо, Wayne
звучит так, будто у вас есть ошибка в вашей системе токенов. Обычно ваш токен должен содержать userId и после декодирования на стороне сервера вы можете использовать эти идентификаторы. Вы никогда не сможете переключать пользователя, просто отправляя разные идентификаторы. –