Социальные логины и сохранение доступа без необходимости каждый раз проходить аутентификацию ... возможно ли это? - PullRequest
0 голосов
/ 28 мая 2011

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

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

Я знаю, что это возможно - у кого-нибудь есть указания, как это сделать?

К вашему сведению - я программирую на PHP, Javascript / Jquery.Заранее спасибо!

1 Ответ

1 голос
/ 28 мая 2011

Вот часть Facebook. Хороший и простой способ сделать это - использовать PHP PHP SDK ( см. На github ). Так что у вас будет что-то вроде:

require "facebook.php";
$facebook = new Facebook(array(
    'appId'  => YOUR_APP_ID,
    'secret' => YOUR_APP_SECRET,
));

$user = $facebook->getUser();

Если пользователь вошел в систему, тогда $user - это его идентификатор Facebook. Затем вам нужно проверить, есть ли у вас действующий токен доступа, сделав вызов API:

  • Если оно не вызывает никаких исключений, значит, у вас есть действительный токен доступа

  • Если это так, вы должны повторно аутентифицировать пользователя.

Вот, пожалуйста:

if ($user) {
  try {
    $facebook->api('/me');
  } catch (FacebookApiException $e) {
    $user = null;
  }
}

Затем необходимо отобразить ссылку для входа или выхода из системы:

<?php if ($user): ?>
    <a href="<?php echo $facebook->getLogoutUrl() ?>">Logout of Facebook</a>
<?php else: ?>
    <a href="<?php echo $facebook->getLoginUrl() ?>">Login with Facebook</a>
<?php endif ?>

Когда пользователь вошел в систему и у вас есть действующий токен доступа, вы можете совершать вызовы API для получения данных из Facebook:

$user_profile = $facebook->api('/me');

Возможно, вы захотите проверить пример страницы в PHP PHP SDK , которая хорошо документирована.

Надеюсь, это поможет.

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