Я настраиваю OneSignal на своем веб-сайте.
Насколько я вижу, есть два способа связать push-подписку с моим идентификатором пользователя:
- Я могу позвонить
OneSignal.getUserId()
, который возвращает UUID, и сделать аутентифицированный звонок на мой веб-сервер, чтобы связать этот UUID с моим зарегистрированным пользователем на моем сервере - Я могу позвонить
setExternalUserId()
отправить зарегистрированный идентификатор пользователя и связать его с подпиской на серверах OneSignal
Первый вариант абсолютно безопасен, поскольку можно было только перехватить мой код на стороне клиента дляотправьте неверный идентификатор подписки (или другой действительный идентификатор подписки , который они создали), что не представляет особой проблемы.
Второй вариант, хотя и кажется совершенно ненадежным: любой может взломать клиент. боковой код для отправки любого действительного идентификатора пользователя и связывания его с подпиской и, следовательно, получения уведомлений от имени другого пользователя.
Существует ли способ безопасного использования setExternalUserId()
при одновременном запрете пользователясвязать свою подписку с другим пользователем?
Единственный безопасный сценарий, о котором я могу подумать, - это если бы у моих пользователей были также идентификаторы UUID вместо последовательных идентификаторов, и эти UUID хранились в секрете (то есть никогда не подвергались публичному раскрытию)на сайте).
Любой другой сценарий, о котором я могу думать, звучит просто небезопасно.
Я что-то пропустил?