All streams
Search
Write a publication
Pull to refresh
4
0
Константин Брызгалин @constb

Backend, Node, NestJS

Send message
добавлю ещё что aws iot допускает «нецелевое» использование в веб-разработке. если в веб-приложении нужны пуши, а само приложение написано на лямбдах (или просто нет желания возиться с socket.io или настраивать centrifugo, или просто есть сомнения в части масштабирования) – нужен отдельный облачный websocket-сервер.

aws iot эту задачу решает полностью – вам в идеале понадобится авторизация через cognito, iam-роли для авторизованных и неавторизованных пользователей. для неавторизованных доступ к топикам iot определяется в iam-роли, для авторизованных права доступа должны быть как в iam-роли, так и в iot-политике, которая подключается к cognito identity с помощью iot.attachPrincipalPolicy. есть небольшая проблема в том что для приватных топиков в политике можно использовать идентификатор identity но нет переменной, которая бы содержала идентификатор пользователя из userpool, в то время как в jwt-токене есть только второй.

я выкрутился, добавив лямбду, которую фронтенд дёргает с id-токеном, она хранит в dynamodb мэппинг с userpool id на identity id, и если нужного мэппинга для нового юзера ещё нет, сразу делает и iot.attachPrincipalPolicy. имея такой мэппинг, можно всегда отправить приватный пуш когнито-юзеру с бэкенда по его userpool-идентификатору.

было бы конечно намного проще если бы в userpool был метод получения identity id, или чтобы можно было userpool id использовать как переменную в iam-политике. копаясь на амазоновском форуме я нашёл даже достаточно старые темы от людей, столкнувшихся с теми же трудностями. по видимому архитектура cognito делает решение этой задачи нетривиальным, раз они до сих пор не могут этого сделать…

polipo превращает socks-прокси в http-прокси

Information

Rating
Does not participate
Location
Анталья, Турция
Date of birth
Registered
Activity

Specialization

Backend Developer
Lead