Я разрабатываю серверную часть приложения на Rails.
Front-end — мобильное приложение на Android / iOS.
Задача — в приложении должна быть возможность входить через Google-аккаунт. Но я не понимаю, как всё это должно взаимодействовать.
Даже если пользователь авторизуется именно в приложении, как back-end об этом узнает?
Ответ
Делается это так:
На клиенте каким-то образом (через SDK соц.сети или через браузер (в т.ч. встроенный в приложение)) юзер авторизуется в вашем приложении. Под последним имеется в виду набор из сгенерированных соц.сетью ключей, которые надо указывать при обращении к API оной. В случае гугла оно, вроде, и не нужно.
После авторизации, в зависимости от соц.сети и всяких разных условий (секурность там всякая etc) с клиента на ваш сервер шлётся ID юзера (случай гугла), authCode или accessToken
В зависимости от того, что именно клиент вам присылает надо или валидировать ID, или обменять authCode на accessToken. Если присылается сразу accessToken то переходим к след. пункту.
Теперь у вас есть все возможности получения всех возможных (разрешённых юзером) данных юзера. Либо как в случае с гуглом, после проверки присланного ID вы получаете объект юзера и делаете с ним что хотите (в БД кладёте, например или обновляете дату его последнего посещения) или, имея токен запращиваете его данные из API соц. сети.
Вот гугловая дока по поводу сервера:
https://developers.google.com/identity/sign-in/web/backend-auth
Там написано, что есть либы под JAVA, NODE.JS, PHP, PYTHON
Комментариев нет:
Отправить комментарий