Size: a a a

Node.js — русскоговорящее сообщество

2020 December 12

V

Van Der Graaf Genera... in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
крокфорд рекомендует так делать. как минимум, нет проблем с this
можно писать на другом языке, проблем с this точно не будет
источник

꧁岡

꧁倫太郎 岡部꧂... in Node.js — русскоговорящее сообщество
@ShGKme @Curly_Cina рандомботы нападают
источник

V

Van Der Graaf Genera... in Node.js — русскоговорящее сообщество
поднять щиты!
источник

М

Максим in Node.js — русскоговорящее сообщество
Запускаем фотонные тарпеды.
источник

AS

Artemy S in Node.js — русскоговорящее сообщество
Привет, объясните, пожалуйста, такой момент. Зачем при авторизации/проверки на определённую роль (например, admin), хранить её в access токене? Ведь если я обновлю пользователя (не важно как, хоть даже напрямую через бд), токен будет с уже не актуальным payload'ом, роль не изменится, и придётся ждать, пока истечёт его время и он обновится благодаря refresh токену. Сейчас делаю так, в payload только userId, а при проверке просто вытаскиваю нужного пользователя по этому id и проверяю роль, это не правильно?)
источник

AG

Anton Golovanov in Node.js — русскоговорящее сообщество
Artemy S
Привет, объясните, пожалуйста, такой момент. Зачем при авторизации/проверки на определённую роль (например, admin), хранить её в access токене? Ведь если я обновлю пользователя (не важно как, хоть даже напрямую через бд), токен будет с уже не актуальным payload'ом, роль не изменится, и придётся ждать, пока истечёт его время и он обновится благодаря refresh токену. Сейчас делаю так, в payload только userId, а при проверке просто вытаскиваю нужного пользователя по этому id и проверяю роль, это не правильно?)
Поэтому обычно делают короткое время жизни токена, а роль в нагрузке нужна, чтобы не бегать с проверкой прав пользователя при каждом запросе.
источник

AS

Artemy S in Node.js — русскоговорящее сообщество
Anton Golovanov
Поэтому обычно делают короткое время жизни токена, а роль в нагрузке нужна, чтобы не бегать с проверкой прав пользователя при каждом запросе.
Да, вижу минус в обращении к бд при каждом запросе, но, что если мне нужно срочно заблокировать пользователя, т. е. выдать ему роль banned, однако это произойдёт только после обновления аксес токена.
источник

AS

Artemy S in Node.js — русскоговорящее сообщество
Может я что-то упустил?
источник

AG

Anton Golovanov in Node.js — русскоговорящее сообщество
Artemy S
Да, вижу минус в обращении к бд при каждом запросе, но, что если мне нужно срочно заблокировать пользователя, т. е. выдать ему роль banned, однако это произойдёт только после обновления аксес токена.
Либо блэк-лист
источник

AS

Artemy S in Node.js — русскоговорящее сообщество
Anton Golovanov
Либо блэк-лист
блэк-лист и для аксес, и для рефреш токена? Но разве это не такое же обращение к бд?
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Artemy S
блэк-лист и для аксес, и для рефреш токена? Но разве это не такое же обращение к бд?
да, такое же. поэтому жвт и ругают когда он используется как сессии
источник

AG

Anton Golovanov in Node.js — русскоговорящее сообщество
Artemy S
блэк-лист и для аксес, и для рефреш токена? Но разве это не такое же обращение к бд?
Ну, можно оптимизировать за счет объема таблицы, и прочих подходов, но по сути - тот же костыль.
источник

AS

Artemy S in Node.js — русскоговорящее сообщество
Понял, значит, если мне нужны актуальные токены, я могу обращаться каждый раз к бд и вытягивать нужного мне пользователя и роль по id (или использовать блэк-лист). А в случае, если актуальность не сильно принципиальна, то можно просто хранить роль в самом токене. И это не будет считаться грубой "ошибкой"?
источник

AG

Anton Golovanov in Node.js — русскоговорящее сообщество
Artemy S
Понял, значит, если мне нужны актуальные токены, я могу обращаться каждый раз к бд и вытягивать нужного мне пользователя и роль по id (или использовать блэк-лист). А в случае, если актуальность не сильно принципиальна, то можно просто хранить роль в самом токене. И это не будет считаться грубой "ошибкой"?
Не будет. Главное токен держать в надежном месте на фронте в таком случае.
источник

AS

Artemy S in Node.js — русскоговорящее сообщество
Anton Golovanov
Не будет. Главное токен держать в надежном месте на фронте в таком случае.
Спасибо, хотя токен лучше всегда хранить в надёжном месте)
источник

AG

Anton Golovanov in Node.js — русскоговорящее сообщество
Artemy S
Спасибо, хотя токен лучше всегда хранить в надёжном месте)
Ну, если у тебя СПА, которое общается с бэком по ресту - то это сложно.
источник
2020 December 13

AS

Artemy S in Node.js — русскоговорящее сообщество
Anton Golovanov
Ну, если у тебя СПА, которое общается с бэком по ресту - то это сложно.
Так, в случае с СПА, где лучше access токен хранить? Я вариантов знаю не так уж и много..
источник

AG

Anton Golovanov in Node.js — русскоговорящее сообщество
Artemy S
Так, в случае с СПА, где лучше access токен хранить? Я вариантов знаю не так уж и много..
А их нет особо. Куки не пропустит браузер (cors)
источник

AS

Artemy S in Node.js — русскоговорящее сообщество
Anton Golovanov
Ну, если у тебя СПА, которое общается с бэком по ресту - то это сложно.
Рефреш-то понятно, но зачастую с аксес, его либо в локалке, либо в памяти клиентского приложения хранят.
источник

AS

Artemy S in Node.js — русскоговорящее сообщество
Anton Golovanov
А их нет особо. Куки не пропустит браузер (cors)
Понял
источник