Я столкнулся с проблемой при реализации авторизации в моем первом приложении nodejs, которое использует для аутентификации expressjs, sequenceize и jsonwebtoken. Внутри я хочу запретить/разрешить маршруты для разных пользователей, и я не хочу использовать другой пакет, такой как oauth2 или что-то, что обрабатывает авторизацию для меня.
На данный момент я создал jsonwebtoken с ролями разрешений, включенными в полезную нагрузку:
{
"userid": 1,
"name": "John Doe",
"permissions" : ["user_get", "user_post", "user_put"]
"iat": 1505142542,
"exp": 1505146142
}
Нет, я хочу проверить в вызове типа «GET/user», разрешено ли аутентифицированному пользователю вызывать его.
Мой вопрос: безопасно ли использовать этот подход или мне не следует включать разрешения в jwt? Другой альтернативой является запрос базы данных и получение разрешения вместо проверки полезной нагрузки.
Кроме того, токен будет проверен, если он все еще валидирован, на случай, если сервер аннулирует пользователя.