Ошибка LightOpenID validate () в Службах Google - PullRequest
12 голосов
/ 28 марта 2011

Я использую LightOpenID для аутентификации OpenID в Google Apps.Я делаю начальный запрос authURL (), и все хорошо.Я вызываю validate (), и это не удается.Через обильное эхо я отследил его до последних нескольких строк validate ().

Из validate () URL, переданный в Discover ($ url), равен https://www.google.com/accounts/o8/user-xrds?uri=http://my-domain.com/openid?id=117665028262121597341

Discover (), сначала проверяет местоположение xrds, которого нет.Затем Discover () проверяет, является ли тип содержимого xrds + xml, что является истинным.Discover () проверяет Сервис (. *) / Сервис, что верно.Вот фрагмент 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 [], в зависимости от магических_квот или нет.Он устанавливает openid.mode в значение 'check_authentication', запрашивает $ сервер, возвращаемый функцией Discover ($ url), и preg для '/ is_valid: true'.Это последний preg_match, который терпит неудачу.URL-адрес $ server не возвращает проверку, а вместо этого говорит: «Запрошенная вами страница недействительна».

Ответ, который я ищу, является правильным URL-адресом для проверки Служб Google.Через несколько секунд будет выглядеть URL-адрес, и я покопаюсь в информации, возвращаемой Службами Google, и посмотрю, есть ли у меня что-то подобное.

ДОБАВЛЕНО: Не уверен, имеет ли это значение, но у меня есть/.well-known/host-meta файл на месте.Вот содержание: Link: <https://www.google.com/accounts/o8/site-xrds?hd=my-domain.com>; rel="describedby http://reltype.google.com/openid/xrd-op"; type="application/xrds+xml"

Дайте мне знать, если вам нужно больше кода или данных.

Спасибо, Эрик Б.

1 Ответ

0 голосов
/ 06 апреля 2013

Убедитесь, что на вашем сервере установлено расширение PHP curl.Недавно мы столкнулись с точно такими же симптомами в работе, и это было связано с проблемой подготовки сервера.

Если вы запускаете приложение в Debian, просто используйте:

apt-get install php5-curl
...