Graph API 3.0 Использование для аутентификации в PHP - PullRequest
0 голосов
/ 06 марта 2012

Я разрабатывал аутентификацию на основе Facebook для одного из своих приложений, ранее я использовал следующий код Из учебника по Nettuts

но когда вышел график api 3.0, я могу добавить этот же код для моего нового веб-приложения, как я могу сгенерировать логин как ссылку about?

Я использую следующий код, но не знаете, как сделать сессию в нем?

=============================================== =========================

1 Ответ

0 голосов
/ 06 марта 2012

Используя Facebook PHP SDK, вам необходимо перенаправить в диалоговое окно OAuth Facebook, а затем использовать запрос на возврат для аутентификации вашего пользователя.

В Facebook есть следующий пример на http://developers.facebook.com/docs/authentication/:

<?php

$app_id = "YOUR_APP_ID";
$app_secret = "YOUR_APP_SECRET";
$my_url = "YOUR_URL";

session_start();
$code = $_REQUEST["code"];

if(empty($code)) {
  $_SESSION['state'] = md5(uniqid(rand(), TRUE)); //CSRF protection
  $dialog_url = "http://www.facebook.com/dialog/oauth?client_id=" 
    . $app_id . "&redirect_uri=" . urlencode($my_url) . "&state="
    . $_SESSION['state'];

  echo("<script> top.location.href='" . $dialog_url . "'</script>");
}

if($_REQUEST['state'] == $_SESSION['state']) {
  $token_url = "https://graph.facebook.com/oauth/access_token?"
    . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url)
    . "&client_secret=" . $app_secret . "&code=" . $code;

  $response = @file_get_contents($token_url);
  $params = null;
  parse_str($response, $params);

  $graph_url = "https://graph.facebook.com/me?access_token=" 
    . $params['access_token'];

  $user = json_decode(file_get_contents($graph_url));
  echo("Hello " . $user->name);
}
else {
  echo("The state does not match. You may be a victim of CSRF.");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...