Как выполнить аутентификацию с помощью моего собственного API сайта при использовании Facebook Connect для входа/создания учетной записи?

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

После того, как пользователь выполнил аутентификацию с помощью FB, у меня есть немного информации о пользователе, но не ключ API или имя пользователя/пароль, чтобы передать мой собственный безопасный сервер API для аутентификации.

Я нашел несколько связанных вопросов, но ничего, что кажется идеальным ответом:

Любая помощь будет принята с благодарностью!

Ответы

Ответ 1

Поскольку вы аутентифицируете своих пользователей через Facebook, вы знаете достаточно о пользователе.

Независимо от потока аутентификации, который вы используете, вы будете

ШАГ № 1: получите параметр access_token и expire. Скорее всего, вы также запросили user_id (если вы используете JS-SDK, он будет обрабатывать большую часть этого).

ШАГ № 2: инкапсулировать эту информацию (access_token, expire и user_id) в хешированную строку, например. имитируйте формат Facebook signed_request.

STEP # 3: отправьте эту хешированную строку в свои собственные вызовы API:

https://mydomain.com/apis/getUserSecretData?fb_oauth=my_hashed_string&vars=my_other_vars

STEP # 4: в конечной точке API, расшифруйте/декодируйте свою хешированную строку и проверьте параметр expire, и если срок действия access_token истек, вам необходимо запросить новый один и повторите вызов API.