Объясните, как работает аутентификация FB connect - PullRequest
6 голосов
/ 08 июля 2011

Я работаю над сайтом, который позволит пользователям создавать учетные записи.Затем разработчики веб-сайтов смогут интегрировать эту систему аутентификации в свой сайт и позволить пользователям входить в систему с учетными данными для входа на мои сайты.Я хочу сделать это аналогично тому, как работает Facebook connect, чтобы сайту пользователей не нужно было перенаправлять на мой сайт для входа в систему, а затем мы выполняем обратный вызов на страницу, с которой они пришли.

Я знаю Facebookиспользует куки, но я не уверен, как они проверяют, вошли ли они в систему.

Вещи, которые я заметил:

  • Если вы зашли на facebook.com, то вы переходите на сайт пользователя.com, у которого есть Facebook Connect, он покажет вам, как вы вошли в систему.
  • Если вы выйдете из userssite.com, вы также выйдете из Facebook.
  • Если вы вышли из Facebook.com и войдите на userssite1.com, затем перейдите на userssite2.com, где вы также войдете на этот сайт.

Из-за этого похоже, что они используют междоменные куки или что-то другое, ноЯ не уверен, как это сделать.

Может кто-то, кто знает, как работает Facebook Connect, объяснит, как я могу достичь этой функциональности в моей собственной системе?

Ответы [ 2 ]

4 голосов
/ 19 июля 2011

Facebook в значительной степени переходит на решение на основе OAuth 2.0.Наше руководство по аутентификации и официальный OAuth 2.0 черновик спецификации - хорошие места для начала.

0 голосов
/ 08 июля 2011

Facebook Connect требует, чтобы вы создали новое приложение facebook для входа в систему и аутентификации пользователей, чтобы вы не были «далеко от Facebook».Когда вы добавляете код инициализации Facebook:

FB.init({ appId: AppID, status: true, cookie: true, xfbml: true });

и код подключения Facebook:

<!-- Facebook required -->
<div id="fb-root"></div>
<!-- Facebook connect required -->
<script src="http://connect.facebook.net/en_US/all.js"></script>

Вы связываете свое приложение с Facebook.Если что-то в приложении Facebook неверно (идентификатор приложения, URL сайта или Canvas URL в приложении Facebook), приложение не будет работать.И все входящие вызовы, например, приведут к ошибке.

Не думайте, что это совершенно отдельный объект от Facebook.Приложение очень хорошо связано в Facebook.

Попробуйте создать приложение для Facebook, используя Connect.Затем вы можете посмотреть, какие скрипты присоединены к root и скрипт соединения.Это может дать вам лучшее представление о том, что происходит (хотя там очень много)

Больше информации от Facebook / разработчиков здесь

Эта веб-страница также может быть полезным

...