Я пытаюсь реализовать уведомление pu sh (API Pu sh). Я только хочу, чтобы вошедшие в систему пользователи могли получать уведомления.
Одним из событий, которое мне нужно реализовать, является pushsubscriptionchange
в моем сервисном работнике, чтобы я знал, что он был изменен, и я должен сделать fetch
запрос в мою базу данных. У меня есть текущие параметры подписки old
и new
, но проблема, с которой я сталкиваюсь, заключается в том, что у меня нет маркера jwt
при отправке этого запроса. Это означает, что конечная точка API в этом случае остается небезопасной, и любой может выполнить ее с подпиской old
и new
.
Если кто-то захватит мою подписку, он может каким-то образом заменить ее своей собственной, и после этого выполнить вызов API моей небезопасной конечной точки, и теперь он будет получать уведомления вместо меня.
Я ищу лучшую практику:
поместите jwt
в indexeddb в коде моего приложения, а затем в сервисном работнике, возьмите его с indexeeddb
. Это начинает вызывать проблемы, потому что когда пользователь выходит из системы, я должен извлечь его из indexeddb, когда обновляется токен jwt
, я должен также обновить sh в indexeddb. кто знает, какие ошибки он собирается внести.
другое решение, о котором я могу подумать, - когда пользователь входит в систему, у меня есть код, который отписывается от него и затем подписывается на него. Таким образом, это кажется довольно простым, потому что кто-то другой никогда не получит мою подписку так легко Хотя я не уверен, что это правильный путь к go.
что вы думаете?