Джентльмены, сегодня передо мной открылись новые бездны.
Просматривал тут один API, разработанный моими коллегами. Всё по фен-шую: REST, JSON, всё как надо.
Авторизация, понятное дело, через JWT. Возник вопрос про сроки годности токенов.
Дай-ка, думаю, гляну, что у них там в токенах приезжает.
Открыл через JWT.io — смотрю, точно, есть атрибут exp.
А кроме него — мамочка дорогая! Юзернейм и пароль в открытом виде.
Ну, думаю, надо лечить. Понятное дело, частное мнение одного продукт менеджера — фигня, надо какой-то авторитетный источник найти.
Начинаю гуглить.
Первое, что нашёл —
https://medium.com/@maison.moa/using-jwt-json-web-tokens-to-authorize-users-and-protect-api-routes-3e04a1453c3e
Что у нас там?
Долбанько на марше: кладём в токен всего пользователя, вместе с именем и паролем.
Долбанько на марше 2: "верификация" токена сводится к вырезанию из заголовка Authorization всего, что после
'Bearer '. И, собсна, усё.
Ищу на SO — находим
https://stackoverflow.com/questions/42652695/is-it-ok-to-store-user-credentials-in-the-jwt
Опять примерно то же самое: "вроде бы не стоит передавать пароль" — "нет, ну а как тогда проверять???" — "ну, есть же и другие способы, без паролей".
Какая-то массовая идиотия.
Буду благодарен за ссылку на
нормальный тьюториал по JWT, где будет внятно сказано, что НЕЛЬЗЯ передавать пароли в токене, и показано, как НА САМОМ деле проверяется токен.
Здравствуйте, Sinclair, Вы писали:
S>Буду благодарен за ссылку на нормальный тьюториал по JWT, где будет внятно сказано, что НЕЛЬЗЯ передавать пароли в токене, и показано, как НА САМОМ деле проверяется токен.
https://auth0.com/resources/ebooks/jwt-handbook
Просят мыло, потом спамят, но не много, а так бесплатно
Здравствуйте, Sinclair, Вы писали:
S>Ну, думаю, надо лечить. Понятное дело, частное мнение одного продукт менеджера — фигня, надо какой-то авторитетный источник найти.
S>Начинаю гуглить.
S>Первое, что нашёл — https://medium.com/@maison.moa/using-jwt-json-web-tokens-to-authorize-users-and-protect-api-routes-3e04a1453c3e
S>Что у нас там?
S>Долбанько на марше: кладём в токен всего пользователя, вместе с именем и паролем.
S>Долбанько на марше 2: "верификация" токена сводится к вырезанию из заголовка Authorization всего, что после 'Bearer '. И, собсна, усё.
Не совсем понял чем вам не понравилась статья: верификация не сводится к "вырезанию всего что после Bearer" — Authorization, собственно, идёт в таком формате:
Authorization: Bearer <jwt-token>
Соответственно вырезается jwt-токен и отдаётся на проверку в функцию jwt.verify, как и должно быть.
ARI ARI ARI... Arrivederci!
Здравствуйте, Sinclair, Вы писали:
S>Буду благодарен за ссылку на нормальный тьюториал по JWT, где будет внятно сказано, что НЕЛЬЗЯ передавать пароли в токене, и показано, как НА САМОМ деле проверяется токен.
https://tools.ietf.org/html/rfc7519