Я использую LightOpenID для аутентификации OpenID в Google Apps. Я делаю первоначальный запрос authURL (), и все в порядке. Я вызываю validate (), и он терпит неудачу. Через обильное эхо я отследил его до последних нескольких строк validate ().
Из validate () URL, переданный в обнаружение ($ url), равен https://www.google.com/accounts/o8/user-xrds?uri=http://my-domain.com. / openid? id = 117665028262121597341
discover () сначала проверяет xrds-location, которого нет. Discover () затем проверяет, является ли тип содержимого xrds + xml, что верно. Discover () проверяет Service (. *) / Service, что верно. Вот фрагмент службы, / Service
<Service priority="0">
<Type>http://specs.openid.net/auth/2.0/signon</Type>
<Type>http://openid.net/srv/ax/1.0</Type>
<Type>http://specs.openid.net/extensions/ui/1.0/mode/popup</Type>
<Type>http://specs.openid.net/extensions/ui/1.0/icon</Type>
<Type>http://specs.openid.net/extensions/pape/1.0</Type>
<URI>https://www.google.com/a/<my domain>.com/o8/ud?be=o8</URI>
</Service>
discover () видит, что мы используем OpenID 2, и извлекает поле URI в переменную $ server. Discover () продолжает извлекать CanonicalID, обнаруживая, что Google поддерживает AX, а не SREG. Наконец, discover () возвращает $ server как https://www.google.com/a/my-domain.com/o8/ud?be=o8
validate () продолжает очищать каждое поле в data [], в зависимости от magic_quotes или нет. Он устанавливает для openid.mode значение 'check_authentication', запрашивает $ server, возвращаемый функцией discover ($ url), и preg для '/ is_valid: true'. Это последняя ошибка preg_match. URL-адрес $ server не возвращает проверку, а вместо этого говорит: «Запрошенная вами страница недействительна».
Я ищу правильный URL-адрес для проверки Google Apps. Ближайшая секунда - это то, как должен выглядеть URL, и я Я покопаюсь в информации, возвращаемой Google Apps, и посмотрю, есть ли у меня что-то подобное.
ДОБАВЛЕНО: Не уверен, имеет ли это значение, но у меня есть файл /.well-known/host-meta. Вот содержание:
Ссылка:
Дайте мне знать, если вам нужен дополнительный код или данные.
Спасибо, Эрик Б.