Я получаю fb_authToken и хочу подтвердить, что он имеет сессию и / или принадлежит пользователю по fb_id с PHP - PullRequest
3 голосов
/ 09 марта 2012

Я разработал несколько веб-сервисов для клиентского приложения для iOS, аутентификация происходит на стороне клиента, когда они «входят» на сервер, отправляя пользователя fb_id и fb_authToken и все.

Я не хочу просто доверять клиентскому приложению. Я хотел бы проверить с помощью facebook, есть ли у этого authToken сеанс или, по крайней мере, принадлежит ли он указанному fb_id. Я не видел ни одного примера / документа об этом с PHP, просто о реальном входе в систему.

Любой совет? заранее спасибо.

1 Ответ

4 голосов
/ 09 марта 2012

Это хороший вопрос.Вы никогда не должны доверять чему-либо, полученному от клиента, и никогда не можете быть уверены, что токен доступа действителен, прежде чем пытаться его использовать.И, конечно, вы не можете доверять тому, что они принадлежат тому пользователю, который они называют.

Общий шаблон, который используется большинством приложений, - это сделать простой запрос через API-интерфейс Graph, а затем перейти к повторной аутентификации, если Facebookотвечает с исключением.Простой запрос к

https://graph.facebook.com/me?fields=id&access_token={your token}

ответит с идентификатором пользователя Facebook, если токен действителен.Вы можете сделать этот вызов как тест токена и идентифицировать идентификатор пользователя.Вот пример ответа, который вы должны получить:

{
    "id": "100003099278003"
}

Вот хороший пост в блоге для разработчиков Facebook, в котором описаны их рекомендации по тестированию и обработке токенов с истекшим или недействительным доступом: https://developers.facebook.com/blog/post/500/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...