«Необязательные» JWT в запросе?

Впервые узнаю о JWT...

У меня есть приложение NodeJS/Express/Angular 2, интегрированное с входом Auth0 в Facebook.

В настоящее время я храню данные профиля пользователя в localStorage и знаю, что это можно редактировать через консоль разработчика.

Я хочу, чтобы пользователи могли публиковать определенные сообщения независимо от того, вошли они в систему или нет (и связывали свою учетную запись пользователя с результирующей сущностью в базе данных, когда они вошли в систему). Однако я хотел бы убедиться, что они никаким образом не изменили объект localStorage, возможно, пытаясь выдать себя за другого пользователя и т. д.

Способен ли один маршрут справиться с этим или мне следует разделить его на два отдельных маршрута для аутентифицированных пользователей/гостей и исключить гостевой из проверок JWT?

Любые общие советы по этой теме тоже приветствуются


person Matt Durkin    schedule 13.03.2017    source источник


Ответы (1)


У вас должно быть два типа маршрутов. Те, к которым можно получить доступ после аутентификации, и другие без какой-либо формы аутентификации. Это почти единственный способ, которым вы должны это сделать.

Кроме того, вы можете хранить все, что захотите, в localStorage. JWT подписываются с использованием секрета (с помощью алгоритма HMAC) или пары открытого/закрытого ключа с использованием RSA. Если кто-то копирует его из локального хранилища и отправляет в другое, это не ваша проблема.

person kappaallday    schedule 13.03.2017
comment
Большое спасибо. Вот такого совета я и ждал! - person Matt Durkin; 13.03.2017