Следует ли Angular клиенту хранить роли пользователей в локальном хранилище? - PullRequest
3 голосов
/ 06 мая 2020

В моем приложении Angular, в зависимости от зарегистрированного пользователя, я хотел бы предоставить или ограничить функциональность, показывая / скрывая различные пункты меню или разрешая / запрещая определенные маршруты. В настоящее время при успешном входе в систему my. NET Core API возвращает токен JWT вместе с ролью пользователя и сохраняет его в локальном хранилище. Затем я использую это для отображения своего меню (например). Я просто сомневаюсь, что это лучшая практика, поскольку она раскрывает роль моего пользователя, и я не уверен, что может случиться, если кто-то вручную изменит это в локальном хранилище.

enter image description here

Есть ли лучший / более безопасный способ достижения этой цели?

Пожалуйста, дайте мне знать, если вам понадобится дополнительная информация. Спасибо

1 Ответ

1 голос
/ 06 мая 2020

Вы не можете изменить свой токен JWT вручную, потому что он был сгенерирован с использованием закрытого ключа (или секретного ключа). Без закрытого ключа вы не можете создать новый токен с обновленными ролями. Таким образом, пользователь не может этого сделать. Конечно, он может декодировать токен, но он не может кодировать действительный новый

...