Как правильно организовать авторизацию через социалки в API для web/mobile?

При разработке веб-приложения с API постал вопрос о способе авторизации через социальные сервисы.
Как я делал это раньше: на бекэнде генерировалась ссылка для авторизации, в которую зашивался адрес редиректа, пользователь логинился и его бросало обратно вместе с токеном, которы чекался на принимающем редирект контроллере. Далее я брал этот токен и по нему получал все нужные данные с социалки.
Тепер же, когда появилось API, добавилось мобильное приложение и web front теперь SPA - необходимо переделывать мешанизм авторизации.
Разработчки мобильного приложения хотят получать всю информацию самостоятельно и передавать на апи такой запрос:
POST /api/users
email=demo@demo.com
password=1111111
provider=google
socialId=123123123
Как я понял, даже без токена.

Или же лучше клиенту получить токен и отправить его бекэнду, который сам вытянет нужную и информацию + будет уверен, что пользователь действительно залогинен в социалку.

Прошу мочь хотя-бы ссылкой, которая поможет снять чехлы =)
Спасибо.
  • Вопрос задан
  • 239 просмотров
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
тут есть нюансы. Вообще вам по сути токен нужен только если с сервера планируется взаимодействие от имени пользователя (например порыться в друзьях и поискать их среди имеющихся пользователей). Тут важно только получить всю нужную инфу и зарегистрировать пользователя у себя + привязать аккаунт. Если мобильщики будут присылать это добро в таком виде - то и ладно.

На самом деле у такого подхода есть жирный плюс - можно заставлять людей вводить дополнительную инфу. То есть email например нужен почти всегда, но пользователь может отказаться и сторонний ресурс этй инфу не предоставит, и если вы будете запрашивать информацию с сервера вы этот кейс никак не захэндлите нормально, либо у вас может возникнуть ситуация с наполовину зарегистрированными пользователями.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы