Я разрабатываю потребитель OpenID в PHP и использую фантастическую библиотеку LightOpenID ( http://gitorious.org/lightopenid ). Исходя из моего кода, найденного в примере клиентского скрипта, я успешно создал пользователя. Однако я столкнулся с проблемой: Google требует, чтобы openid.identity
и openid.claimed_id
были настроены на "http://specs.openid.net/auth/2.0/identifier_select"
(см. Здесь ). Если я это сделаю, это работает, но другие поставщики (то есть AOL) этого не делают.
Вот мои вопросы:
identifier_select
, вопреки спецификациям OpenID? identifier_select
, есть ли конечное число из них, в которое я просто вложу код, или можно каким-то образом определить это через спецификацию OpenID? Я новичок в работе OpenID, поэтому я не удивлюсь, если это глупый вопрос. Я не смог найти информацию по этому вопросу после очистки Интернета.
Google не противоречит спецификации. Спецификация OpenID 2.0 абсолютно разрешает потоки identifier_select, которые позволяют использовать что-то под названием «направленная идентификация», которую Google является единственным заметным OP (который я знаю), который фактически реализует способность делать.
И да, полностью и правильно реализованная библиотека OpenID RP автоматически заметит, что Google (и любой другой OP, подобный ей) требует идентификатора_селекта, поскольку он является частью этапа обнаружения идентификатора, который поднимает это. Извините за библиотеку, которую вы используете, но похоже, что это вызывает у вас горе из-за, возможно, неполной реализации OpenID.
И, кстати, AOL поддерживает идентификатор_селек.
Здесь автор LightOpenID.
Обратите внимание, что этот ответ касается новейшей версии моей библиотеки, которая была нажата после того, как был задан этот вопрос. Для тех, кто все еще борется с этой проблемой, загрузите последнюю версию
Это используется для аутентификации в режиме выбора OP Driven ID. Это менее распространенный, но не угловой случай. Среди всех поставщиков OP, которые я использую, я заметил, что Google и Yahoo требуют этого.
Это необходимо для поддержки Directed Identity в OpenID 2.0. В принципе, вы получаете другой OpenID для разных сайтов. Есть толчок, чтобы перейти к этой модели сторонниками защиты конфиденциальности, поэтому я думаю, что вы должны поддерживать это скоро или позже.