Как организовать авторизацию через соцсеть на мобильном, когда запрос перехватывает нативное приложение соцсети?
Столкнулся с такой проблемой: когда пользователи со смартфона (по крайней мере, андроид) пытаются войти на сайт через соцсеть, переход по ссылке для входа перехватывает нативное приложение FB или VK (правда не у всех и не во всех браузерах), соцсеть подтверждает вход, но фронтенд не может обработать данные.
У меня SPA, которое общается с бекендом по рест-апи, stateless. Вход через соцсеть организован через бекенд: у пользователя открывается новое окошко, там он подтверждает вход, редиректится на мою служебную страницу, где я подтверждаю вход и отдаю в json api-key и информацию о пользователе. Фронтенд её забирает и закрывает окно.
Всё работало прекрасно, пока работало через браузер. Когда запрос перехватывает нативное приложение соцсети, то после подтверждения запроса пользователь видит мою служебную страницу, а фронтенд её не видит, потому что она открыта в приложении соцсети, а не в браузере.
Что с этим делать – не понимаю пока.
Кто сталкивался с таким? Или какие есть более грамотные способы организации входа через соцсеть?
Придётся добавить немного состояний.
Сессии для процесса авторизации. Если служебная страница открыта в приложении соцсети (после авторизации, как я понял), то в одностраничнике как-то это событие отловить.
Сервис воркер - промис .
Работает сервис воркер, промис ждет и ловит событие с сервера.
Ну а так как ты говоришь что пользователь видит твою служебную страницу, значит в целом все работает.
На служебной странице показываешь сообщение "Теперь вы авторизованы и можете вернуться на сайт" и создаешь событие которые отправляешь на фронт(его там эждет запущенные промис). Ну а далее все так же как у тебя сейчас.