По идее, клиент должен засылать данные юзера на сервер. Но данным клиента доверять нельзя…
Пока приходит в голову только цифровая подпись этих данных и проверка этой подписи на сервере.
Я пока придумал такую схему: клиент авторизируется через facebook sdk, посылает токен на сервер, сервер его проверяет (запрашивает /me?access_token=), если все ок то выдает клиенту новый внутренний токен и клиент уже посылает запросы с этим токеном. Все делается по SSL.
Zelgadis: facebook sdk не позволяет такое провернуть, так как проводится сравнение ключа сессии, которая началась на одном устройстве, а запросы выполняются на другом устройстве. Передача ключа сессии выглядит не очень.