Рекомендации библиотеки провайдера 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, но я не уверен, так как я еще не пробовал ни одну из них.
Удачи и бога!