Как аутентифицировать пользователя на своем сервере после Facebook Login?
Здравствуйте,
3й день роюсь в доках ФБ и не могу найти ответы на свои вопросы.
Дано: приложение, использующее Email и пароль для аутентификации пользователей.
Нужно: добавить аутентификацию ФБ.
Проблемы:
1. При запросе логина можно указать Permissions, в том числе Email, но пользователи могут его скрыть. Что делать, если Email необходим для работы приложения? (судя по всему ничего, либо делать дополнительный запрос)
2. После логина мы получаем от FB AuthToken, с помощью которого нам нужно аутентифицировать пользователя на сервере. Как сервер может проверить, какому пользователю принадлежит токен, если токен поменялся с момента последнего логина?
3. Есть ли возможность сравнить передаваемые данные с данными на сервере FB?
1. Тогда нужно будет потом показать пользователю формочку "Введите свой емейл". Еще в FB есть механизм повторного запроса permissions, но мне кажется вариант с формочкой и принудительным запросом Email более правильный.
2. Можно верифицировать полученный токен с помощью вызова FB Graph API. В ответе придет в том числе user_id. https://developers.facebook.com/docs/facebook-logi...
3. Не совсем понятно, что вы имеете в виду
Спасибо за ответ. user_id - значение постоянное, это id пользователя в facebook? По пункту 3. собственно вы ответили в пункте 2. Мне бы этого user_id хватило для связи пользователя ФБ со своей базой данных.
Niemand: да user_id это либо глобальный айди пользователя в FB либо айди пользователя, в контексте вашего приложения. Зависит от того, какой тип интеграции вы используете, и когда было зарегистрировано ваше приложение в ФБ. Скорее всего, для новых приложений ФБ всегда будет возвращать app-scoped user ID. Но в вашем случае это не помешает, т.к. этот айди в любом случае будет постоянным и уникальным для каждого юзера вашего приложения. Подробнее тут - https://developers.facebook.com/docs/apps/upgradin...