Рекомендации библиотеки провайдера OpenID для PHP

Наш сайт PHP использует самодельную реализацию аутентификации форм. Мы рассматриваем возможность превращения нашего сайта в поставщика OpenID, чтобы мы могли аутентифицировать (используя наши существующие учетные записи пользователей) пользователей на сайте StackExchange. Если нам нужно добавить код или пользовательский интерфейс в форму входа в систему или добавить поля в нашу базу данных, это нормально - нам просто не нужно извлекать то, что у нас есть, и заменять все это, чтобы получить поддержку поставщика OpenID.

На сайте OpenID есть несколько библиотек для PHP. Кто-нибудь имеет опыт использования любой из этих библиотек для добавления возможности поставщика OpenID на сайт PHP, и если да, то какой из них ваш любимый и почему? Существуют ли конкретные библиотеки, от которых вы бы держались подальше, и если да, то почему?

2 ответа

Решение

Ну, большинство опций, перечисленных на этой странице, не имеют поддержки провайдера, поэтому я думаю, что ваши опции сводятся к php- openid или OpenDIDId для OpenID Enabled. Я неравнодушен к библиотекам openidenabled, но опять же, я был в команде, которая их написала. php-openid, как правило, совместим с более широким диапазоном версий PHP, и его тестовое покрытие довольно обширно.

Я не очень много знаю о предложении Zend, но это может быть уместно, если вам достаточно повезло, что вам не нужна совместимость с PHP 4 и им нравится то, что они делают.

Начните с просмотра официального сайта разработчиков OpenID @ http://openid.net/add-openid/become-a-provider/

Там это дает вам три варианта:

  • Аутсорсинг стороннему провайдеру
  • Использовать существующую библиотеку или плагин
  • Читайте спецификации и OpenID самостоятельно

Вариант 1 может быть не тем, к которому вы стремитесь, поскольку вы хотите, чтобы ваш сайт был провайдером, как вы указали выше.

Вариант 3 приемлем, если у вас есть время и возможности для его реализации. Попробуйте просмотреть http://openid.net/specs/openid-authentication-2_0.html и посмотреть, сможет ли ваша команда разработчиков справиться с этим.

Наконец, есть вариант 2, который я считаю лучшим выбором. Есть достаточно вариантов библиотек PHP, перечисленных в http://openid.net/developers/libraries/. Я полагаю, что было бы легко использовать одну из этих библиотек для расширения существующего механизма аутентификации для предоставления услуги аутентификации OpenID, но я не уверен, так как я еще не пробовал ни одну из них.

Удачи и бога!

Другие вопросы по тегам