Суть решения в том, как вы обрабатываете запросы на беке, и от этого лучше отталкиваться, основных варианта два:
- вариант первый: в токене (см. JWT) есть все данные и срок жизни для того, чтобы определить отдать юзеру некий ресурс или нет, в таком случае вполне допустим вариант хранения ролей в составе JWT и подписывать его секретным ключом для защиты от подделки самого токена
- вариант второй: для проверки токена бек обращается к какому-то своему хранилищу, где проверяет наличие этого токена и данные юзера этого токена, в таком случае нет профита что-то придумывать, можно доп. данные по правам/ролям хранить/дергать в одном запросе к хранилищу для получения и ролей/прав