Спасибо за перевод. Хотел бы узнать мнения автора и заинтересованных по поводу применения stateless-JWT в следующем кейсе: CRUD-продукт с RBAC, в котором UI (возможные вкладки, кнопки) может меняться исходя из набора прав у определенного пользователя. Стек - React (CSR) + бэкэнд. Есть требование к производительности 'нужно чтобы работало очень быстро в глазах пользователя'. До бэкэнда со стороны пользователя всегда пинг 100+, особенность расположения такая. По опыту, при использовании такого стека вместе с сессиями, возникала проблема - при открытии каждой react-странички нужно делать запрос на бэк и узнавать у него по сессионной куке что за пользователь сейчас сидит, и есть ли у него права на просмотр текущей страницы, что ему вообще можно видеть. Если все ок, то уже после этого летят запросы на эндпоинты отрисовки страницы. Если даже опустить вопрос производительности такого решения (минимум 2 синхронных API запроса на отрисовку страницы), то возникало кучи проблем связанных с редиректами при протухании сессии, кэшами редиректов в браузере. В такой ситуации использование JWT с информацией о правах с коротким access-токеном и длинным refresh-токеном избавило бы от необходимости долбить бэкэнд на предмет текущей ситуации по правам. SSR через Next JS и сессии на его стороне уж очень не хочется завозить, видится лишним усложнением стека только ради сессий.
Теперь вопрос: оправдано ли здесь использование JWT в таком виде? Если делать по другому, то какие варианты можно рассмотреть? Возможно просто стоит использовать Next?
Спасибо за перевод.
Хотел бы узнать мнения автора и заинтересованных по поводу применения stateless-JWT в следующем кейсе: CRUD-продукт с RBAC, в котором UI (возможные вкладки, кнопки) может меняться исходя из набора прав у определенного пользователя. Стек - React (CSR) + бэкэнд. Есть требование к производительности 'нужно чтобы работало очень быстро в глазах пользователя'. До бэкэнда со стороны пользователя всегда пинг 100+, особенность расположения такая.
По опыту, при использовании такого стека вместе с сессиями, возникала проблема - при открытии каждой react-странички нужно делать запрос на бэк и узнавать у него по сессионной куке что за пользователь сейчас сидит, и есть ли у него права на просмотр текущей страницы, что ему вообще можно видеть. Если все ок, то уже после этого летят запросы на эндпоинты отрисовки страницы.
Если даже опустить вопрос производительности такого решения (минимум 2 синхронных API запроса на отрисовку страницы), то возникало кучи проблем связанных с редиректами при протухании сессии, кэшами редиректов в браузере.
В такой ситуации использование JWT с информацией о правах с коротким access-токеном и длинным refresh-токеном избавило бы от необходимости долбить бэкэнд на предмет текущей ситуации по правам.
SSR через Next JS и сессии на его стороне уж очень не хочется завозить, видится лишним усложнением стека только ради сессий.
Теперь вопрос: оправдано ли здесь использование JWT в таком виде? Если делать по другому, то какие варианты можно рассмотреть? Возможно просто стоит использовать Next?