Intereting Posts
Должен ли я использовать несколько классов для игры? PHP Предупреждение: нет такого файла или каталога в Unknown в строке 0 Использование моделей в CodeIgniter Слияние массивов с теми же клавишами Проблема с веб-формой, используемой для добавления и удаления имен клиентов Как я могу найти все пробелы, исключая те, которые заключены между кавычками? Добавление в базу данных. Нет повторения при обновлении Laravel 5.1, определяющий текущую страницу для разбивки на страницы Самый чистый способ читать настройки конфигурации из файла PHP и загружать весь код проекта с помощью сценария оболочки не получить ошибку Исключение несоответствия токена в Verify csrf token в laravel 5.5 Использование ini_set ("memory_limit", "-1") и все еще из памяти Как сравнить части даты двух объектов Zend_Date? Загрузка содержимого с использованием Ajax с PHP Правильное выполнение оболочки в PHP IMAP, Microsoft Exchange, Поиск писем

Является ли Google единственным поставщиком OpenID, который требует «identifier_select»?

Я разрабатываю потребитель OpenID в PHP и использую фантастическую библиотеку LightOpenID ( http://gitorious.org/lightopenid ). Исходя из моего кода, найденного в примере клиентского скрипта, я успешно создал пользователя. Однако я столкнулся с проблемой: Google требует, чтобы openid.identity и openid.claimed_id были настроены на "http://specs.openid.net/auth/2.0/identifier_select" (см. Здесь ). Если я это сделаю, это работает, но другие поставщики (то есть AOL) этого не делают.

Вот мои вопросы:

  1. Является ли Google поворотным аргументом – это единственный поставщик OpenID, где требуется identifier_select , вопреки спецификациям OpenID?
  2. Есть ли недостаток в библиотеке LightOpenID?
  3. Мое понимание того, как OpenID работает некорректно?
  4. Если Google не является единственным провайдером, для которого требуется identifier_select , есть ли конечное число из них, в которое я просто вложу код, или можно каким-то образом определить это через спецификацию OpenID?

Я новичок в работе OpenID, поэтому я не удивлюсь, если это глупый вопрос. Я не смог найти информацию по этому вопросу после очистки Интернета.

    Google не противоречит спецификации. Спецификация OpenID 2.0 абсолютно разрешает потоки identifier_select, которые позволяют использовать что-то под названием «направленная идентификация», которую Google является единственным заметным OP (который я знаю), который фактически реализует способность делать.

    И да, полностью и правильно реализованная библиотека OpenID RP автоматически заметит, что Google (и любой другой OP, подобный ей) требует идентификатора_селекта, поскольку он является частью этапа обнаружения идентификатора, который поднимает это. Извините за библиотеку, которую вы используете, но похоже, что это вызывает у вас горе из-за, возможно, неполной реализации OpenID.

    И, кстати, AOL поддерживает идентификатор_селек.

    Здесь автор LightOpenID.

    1. Спектр позволяет это, поэтому он, вероятно, не единственный (другие ответы упоминаются в Yahoo)
    2. Нет, нет – LightOpenID поддерживает это. (см. пример-google.php в библиотеке).
    3. Вам все еще нужно знать URL-адрес открытия, поэтому вам нужно знать провайдера. Или сообщите пользователям ввести https://www.google.com/accounts/o8/id как их личность.

    Обратите внимание, что этот ответ касается новейшей версии моей библиотеки, которая была нажата после того, как был задан этот вопрос. Для тех, кто все еще борется с этой проблемой, загрузите последнюю версию

    Это используется для аутентификации в режиме выбора OP Driven ID. Это менее распространенный, но не угловой случай. Среди всех поставщиков OP, которые я использую, я заметил, что Google и Yahoo требуют этого.

    Это необходимо для поддержки Directed Identity в OpenID 2.0. В принципе, вы получаете другой OpenID для разных сайтов. Есть толчок, чтобы перейти к этой модели сторонниками защиты конфиденциальности, поэтому я думаю, что вы должны поддерживать это скоро или позже.