Работаю над мобильным приложением, в котором нужно сделать авторизацию через социальные сети (Facebook, VK, OK и т.п.), а также взаимодействовать с собственным API сервером.
Подключил SDK от Facebook и сделал авторизацию через Facebook как описано в
документации. Все работает хорошо и в результате авторизации я получаю access_token и информацию о пользователе FB. Примерно аналогично будет проходить авторизация и через другие соц. сети.
Дальше мне нужно каким-то образом авторизоваться на собственном сервере для дальнейшего использования API. Вопрос в том как это правильно и безопасно сделать?
Проблема в том, что это не обычная авторизация через email/пароль, где после регистрации/авторизации пользователю можно выдать какой-нибудь токен и отправлять его в каждом запросе к API. Также можно запросить подтверждение E-mail адреса. Здесь после авторизации через FB я получаю access_token, id и другую информацию о пользователе, а дальше на основе этих данных мне нужно создать нового пользователя у себя в БД или выдать существующего. В этом и проблема.
Выглядеть это будет как обычный POST запрос к моему серверу, в котором будет отправлена информация о пользователе (id, имя и т.п), но как подтвердить эту информацию? Можно не подтверждать и все будет работать, но если какой-нибудь злоумышленник узнает как и куда отправить подобный запрос на мой сервер, то он сможет без проблем генерировать сотни/тысячи пользователей у меня на сервере и я не смогу узнать реальные ли это пользователи. Это не авторизация через OAuth, где я получаю информацию о пользователе через callback с серверов FB/VK.
Подскажите, пожалуйста, как правильно это сделать? А также как сделать дальнейшее взаимодействие с API сервером в плане безопасности (создание токенов, подпись запросов, проверка токенов и т.п.).
Спасибо.