Как технологически работают «Facebook Connect», «Войти через Twitter» и т. Д.? - PullRequest
15 голосов
/ 06 июля 2010

Мне любопытно, как эти системы работают технологически.Насколько я понимаю, вы делаете следующее как пользователь:

  1. Перейдите на ваш любимый сторонний сайт.
  2. Нажмите кнопку "Facebook Connect".
  3. Журналв Facebook (если еще нет).
  4. Авторизовать приложение
  5. Вы перенаправлены обратно на сторонний сайт, вошедший в систему.

Но как это делает третья сторонасайт поговорил с FB о том кто ты?Я могу понять, как он мог получить необходимую информацию, когда вы первоначально авторизуете приложение, но как он узнает впоследствии?Вот сценарий:

  1. Вы заходите на Facebook и авторизуетесь.
  2. Затем вы переходите на ваш любимый сторонний сайт (который вы уже авторизовали).
  3. Этоуже знает, что вы вошли в систему!

Ответы [ 4 ]

10 голосов
/ 13 июля 2010

Выполняется фоновый пинг с использованием IFrame, и если текущая вошедшая в систему учетная запись уже авторизовала приложение, то токен доступа и идентификатор пользователя возвращаются приложению. При этом приложение может решить, что делать (обычно, установить cookie-файл и обновить страницу, чтобы сервер мог повторно отобразить страницу, зная, кто вы на основе только что установленного cookie-файла). Если вам интересно, вы можете посмотреть реализацию Facebook JS-метода на стороне клиента под названием FB.getLoginStatus () здесь: http://github.com/facebook/connect-js/blob/master/src/core/auth.js#L117

3 голосов
/ 06 июля 2010

Используется трехсторонняя система аутентификации OAuth.

После запуска процесса сторонний сайт подключается к Facebook, и если вы уже вошли в Facebook (сеанс в реальном времени с файлами cookie), он просто использует это и запрашивает разрешение на авторизацию стороннего приложения.

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

2 голосов
/ 06 июля 2010

Выезд OpenID .Также эта презентация очень интересна: Facebook Connect против FriendConnect

0 голосов
/ 19 сентября 2016

Все это происходит через механизм OAuth2, где стороннее приложение уже регистрируется в facebook (или на любом другом веб-сайте, имеющем реализацию oAuth2) и получает Id (обычно называемый clientId) и secretCode (т.е. clientSecret). Таким образом, когда вы хотите войти в приложение третьей части через fb, сервис предоставляет (clientId + clientSecret + callbackUrl) ---> для facebook. Между тем, первые два должны были авторизовать сервис третьей части, а обратный вызов URl - это URL, где Facebook отвечает «accessToken» для этой учетной записи. Используя этот accessToken, служба третьей стороны будет вызывать API-интерфейсы Graph Facebook для получения информации, относящейся к пользователю, и использовать ее для входа пользователя в свою службу.

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