Документация Facebook Connect довольно ограничена.На самом деле это не говорит вам, что он делает, только как это сделать.Я лично не использую ни SDK.Я построил свой собственный фреймворк для своих проектов разработки.
И SDK, и JavaScript в учебнике, IMO, довольно устарели.
Если вы хотите придерживаться одного из FBSDKs вот мое предложение.Используйте JS SDK только в том случае, если ваши запросы API Graph и т. П. Отправляются в бэкэнд PHP через Ajax.В противном случае используйте PHP SDK.
Введение
Facebook использует oAuth v2.Они описывают два разных метода потока ... на стороне сервера и на стороне клиента.Это будет реализовано так же, как и любое другое приложение, аутентифицирующееся с помощью службы oAuth v2.Они оба делают одно и то же.Единственная разница может заключаться в том, что вы можете использовать 'code' в качестве request_type для получения кода авторизации для получения токена в будущем.
Аутентификация
Насколько FBConnect обеспокоен тем, что ваш скрипт должен убедиться, что у вас есть токен авторизации или код авторизации, когда вам требуется аутентификация.Если у вас этого нет, вам нужно это получить.Вы можете использовать наличие кода авторизации или токена в качестве условия, для которого отображается кнопка FB (вход или выход из системы).
Перенаправить пользователя на oAuth для аутентификации.У Facebook их реализация oAuth связана с их диалоговым API.Более подробная информация о диалоге oAuth здесь: http://developers.facebook.com/docs/reference/dialogs/oauth/
Вы можете использовать необязательный параметр состояния для чего-то вроде защиты от CSRF.Он сохраняет свое значение после процесса и отправляется с обратным вызовом в качестве параметра GET.
Взаимодействие с приложением
В основном вы будете писать свое приложение таким же образомкак обычноРазличия будут следующие:
- Ваша база данных пользователей больше не хранит пароль, только UB FID.Кроме того, согласно FB Dev ToS, вы действительно не можете хранить какую-либо пользовательскую информацию.Если вы хотите хранить информацию о пользователе, вам нужно получить ее от пользователя.Вы можете заполнить эту информацию для них информацией FB, вам просто нужно, чтобы они отправили ее.
- Ваш метод регистрации больше не будет отправлять форму внешнего интерфейса.Он будет вызываться, когда аутентифицированный пользователь не имеет записи в БД.
Взаимодействие API
Если вы использовали код вместо токена, вам нужнозапросить токен, отправив код.Это делается с помощью Graph API oauth.Эта часть не задокументирована, кроме как в учебнике по аутентификации.http://developers.facebook.com/docs/authentication/
С вашим токеном доступа, какой бы метод вы ни использовали для его получения.Теперь вы можете запросить Graph API, как пожелаете.Это вернет объект в кодировке JSON.
Заключение
Что касается быстрой и безопасной реализации, то Facebook PHP SDK выполняет свою работу.Он обрабатывает все, что я освещал здесь, в том числе CSRF.Как узнать об этом, я еще не нашел достойную документацию по нему.Все либо старое, либо писатель действительно не знает и уходит из других уроков.
Лучше всего копаться в этих библиотеках и выяснять, как это работает для вас.Сделайте несколько проб и ошибок, поэкспериментируйте.
Способ, которым я научился, заключался в написании собственного фреймворка для него.Я предлагаю вам сделать то же самое.Вы можете расширить классы Facebook SDK, если хотите.Это действительно ограничено, но дает вам все, что вам нужно.Я взял свои наиболее часто используемые вызовы API и также разместил их.Теперь у меня есть очень быстрый и простой конечный результат, полученный из моей библиотеки.