2012-03-07 3 views
0

Хорошо, у меня уже есть действующее веб-приложение. Задний конец - это интерфейс для отдыха. Первоначально для входа в систему пользователь должен был зарегистрироваться, а затем войти в систему со своими учетными данными. Но я хочу интегрировать логин facebook;Интеграция facebook connect на моем сайте

так в моем покое интерфейс я добавляю еще два метода

  1. registerfbUser: регистрирует учетную запись пользователя

  2. loginfbUser: позволяет пользователю использовать свой facebook аккаунт для входа в систему после
    зарегистрировавшись

Я был в состоянии к и se facebook connect и график api для подключения к facebook. Теперь loginfbUser вызывается с использованием ajax, и детали будут предоставлены в формате JSON.

Моя проблема заключается в том, какую информацию я должен передать методу loginfbUser для аутентификации пользователя facebook. Я не могу передать только идентификатор facebook, потому что api будет открытым, и, таким образом, любой сможет сделать запрос POST с идентификатором facebook в формате json.

+0

Вы хотите, чтобы пользователи также могли войти в систему по-старому? Будут ли новые пользователи иметь возможность входа в систему либо по-новому, либо по-старому? –

+0

да, конечно, в обоих направлениях – Noor

ответ

1

AFAIK, вся ссылка Facebook Connect - это позволить веб-разработчикам перестать беспокоиться о именах пользователей/паролях. Я считаю, что идея состоит в том, чтобы сохранить идентификатор Facebook в базе данных пользователей и использовать API-интерфейс Graph, чтобы узнать, зарегистрирован ли этот пользователь в Facebook или нет. Таким образом, ваш сайт аутентифицирует пользователя через его присутствие на Facebook.

1

Предполагая, что вы используете JS SDK и PHP SDK, любую функцию, которая выполняет действие, которое требует проверки подлинности FB должна начинаться так:

$this->_facebook = new Facebook(array(
    'appId' => $this->app_id, 
    'secret' => $this->app_secret, 
    'fileUpload' => true, 
    'cookie' => true 
)); 

try { 
    $this->_fb_userid = $this->_facebook->getUser(); 
} catch (FacebookApiException $e) { 
    // the user is not authenticated! 
    return; 
} 

try { 
    $this->_fb_me = $this->_facebook->api('/me'); 
} catch (FacebookApiException $e) { 
    // API call didn't work, show error... 
    return; 
} 

Если пользователь выполняет проверку подлинности с помощью JavaScript, то PHP SDK автоматически будет знать о зарегистрированном пользователе. JS SDK отправляет эту информацию через файл cookie на ваш сервер, и PHP SDK автоматически считывает его.

2

В нашей компании мы широко используем аутентификацию FB через AJAX для входа в систему. То, как мы это делаем, просто. После того, как пользователь выполнит вход в систему или выполнит аутентификацию через JS SDK FB на странице, мы отправим токен доступа на наш сервер в вызове AJAX. Этот токен доступа затем перекрестно проверяется нашим сервером, отправив запрос/api api на graph.facebook.com и получив идентификатор FB. Делая это, мы УВЕРЕНЫ, что это только этот человек и этот человек.

После этого мы сохраняем эту информацию (токен доступа и идентификатор пользователя facebook) - это сеанс на стороне сервера, и поэтому все будущие вызовы в этом же сеансе будут правильно распознавать пользователя.

Если вы являетесь отправной точкой приложения FB или холстом, то токен доступа и fbId отправляются facebook в подписанном запросе, который вы можете «распечатать» и использовать для хранения в сеансе и избегать сделайте этот вызов graph.facebook.com (который может быть немного медленным и сформировать узкое место производительности/UX)

Смежные вопросы