Запрос на вход с ответом JWT - PullRequest
1 голос
/ 31 мая 2019

У меня есть запрос '/ login', который в основном проверяет ИМЯ ПОЛЬЗОВАТЕЛЯ и ПАРОЛЬ, а в дальнейшем при успешном завершении возвращает токен (JWT).

Теперь вопрос заключается в том, что мой API также возвращает USERNAME и ПАРОЛЬ в ответ на:маркер.Это правильный путь или я должен удалить ИМЯ ПОЛЬЗОВАТЕЛЯ и ПАРОЛЬ из ответа.

ЗАПРОС JSON

{
"USERNAME": "admin",
"PASSWORD": "123456"
}

Ответ

{
    "token": "eyJhbGciOiJIUzUxMiJ9.eyJleHAiOjE1NTk1NTM4NjcsInVzZXJMb2dpbklkIjoiYWRtaW4ifQ.fxaENKTXxPG5wl8hp7_cSORfMzI38ODu_HgNRj3c7UZwohiFNFfZVpou8MYU4kkxEXV87-LP3upctjGCpGV6_Q",
    "PASSWORD": "123456",
    "USERNAME": "admin"
}

Ответы [ 3 ]

1 голос
/ 31 мая 2019

Я не могу добавить комментарий к ответу брата, поэтому я поделюсь своими мыслями здесь.

Как сказал брат, вы не должны раскрывать пароль или любую конфиденциальную информацию, если она не нужна.Если вы хотите узнать, на какого пользователя ссылается токен, вы можете поместить UUID внутри, который является нелинейным строковым идентификатором для вашего пользователя.Многие базы данных обрабатывают этот тип идентификаторов как первичные ключи.Вы также должны зашифровать пароль с помощью библиотек вроде bcrypt.

0 голосов
/ 31 мая 2019

Как уже заявили другие люди, ваше приложение не должно знать пароль или сохранять его в каком-либо состоянии (память, база данных ...), а хэшировать его.

0 голосов
/ 31 мая 2019

В целях безопасности вам обязательно нужно удалить пароль из ответа. Я не понимаю, почему вы хотите это там. Даже имя пользователя, если вам нужна какая-либо информация, должно быть внутри самого токена.

Другим хорошим подходом является совместное использование refreshToken, поэтому в случае истечения срока действия токена вы можете использовать refreshToken для получения нового, не прося пользователя снова войти в систему.

Кроме того, избегайте в JWT содержать конфиденциальную информацию, такую ​​как электронная почта, пароль, полное имя и т. Д. ...

Как любой может получить его и опубликовать на странице: https://jwt.io/, чтобы получить то, что внутри.

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