Как интегрировать простой openid с существующей системой регистрации моего сайта? - PullRequest
3 голосов
/ 14 сентября 2009

Может ли кто-нибудь опубликовать простую пошаговую интеграцию для openid на сайт, который уже имеет систему входа в систему?

Я решил использовать PHP OpenID 2.1.3, но смог найти, с чего начать и что делать.

Ответы [ 3 ]

3 голосов
/ 14 сентября 2009

Я думаю, что вам лучше всего использовать модуль OpenID из Zend Framework . Он может использоваться сам по себе, без необходимости использования всей платформы, и у них есть довольно простое объяснение того, как его использовать на своих страницах справочника . Это так же просто (если вы понимаете концепцию OpenID) как:

login_page.php:

// Load the library Zend Framework way, or load it yourself...
// Always good to pick apart the library anyway, to see how it works:
Zend_Loader::loadClass('Zend_OpenId');
$consumer = new Zend_OpenId_Consumer();
if(!$consumer->login($_POST['openid_identifier'], 'redirect_to.php'))
 {
  die('OpenID login failed.');
 }

redirect_to.php:

Zend_Loader::loadClass('Zend_OpenId');
$consumer = new Zend_OpenId_Consumer();
if($consumer->verify($_GET, $id))
 {
  echo htmlspecialchars($id).' is a valid ID.';
 }
else
 {
  // redirect to "login.php?login=failed".
  if(!headers_sent())
   {
    header('HTTP/1.1 307 Temporary Redirect', true, 307);
    header('Location: login.php?login=failed');
   }
  else die('Invalid ID.');
 }

Это намного проще в использовании, чем PHP OpenID Library ( php-openid ), предоставляемая OpenID Foundation .

РЕДАКТИРОВАТЬ: Как реализовать Zend_OpenId (в ответ на комментарий).

Загрузите последнюю версию Zend Framework и распакуйте папку ZendFramework-1.9.2/library/Zend/OpenId.

Однако есть несколько вещей, которые вы должны сделать:

  1. Изменение значения класса расширений в [...]/OpenId/Exception.php с Zend_Exception на Exception.
  2. Просмотрите каждый файл (я знаю, утомительно) и замените все обязательные и включаемые на абсолютные пути.

Теперь вы можете ссылаться на классы по:

require_once '/path/to/OpenId/Consumer.php';
$consumer = new Zend_OpenId_Consumer();
// If you plan on making your own OpenID's, use 'Provider' instead of 'Comsumer'.
require_once '/path/to/OpenId/Provider.php';
$provider = new Zend_OpenId_Provider();

Теперь лучший совет, который я могу вам дать, это прочитать руководства! Не ожидайте, что это сработает в первый раз ... Реализация Zend может быть проще, но это не мешает OpenID быть проблемой в заднице!

0 голосов
/ 17 сентября 2009

Джозеф Смарр из Plaxo написал пару прекрасных рецептов для сайтов, поддерживающих OpenID, пару лет назад.

0 голосов
/ 14 сентября 2009

Нет, простого руководства нет. Слишком много систем входа и разных реализаций, чтобы сделать это простым и понятным.

Для конкретных скриптов попробуйте поискать в Google. Для любых других скриптов вам нужно будет интегрировать OpenID в ваше приложение. Если вы используете MVC, вам повезло: посмотрите на модель пользователя и подключите к ней OpenID.

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