Проблема Я пытаюсь заставить LightOpenID работать с учетной записью Google Apps Enterprise. Я получаю "Серверы не найдены!" когда я позвонил validate (). Я макетировал быструю страницу, чтобы протестировать каждый шаг LightOpenID, и я продвинулся немного дальше, теперь всегда получаю «is_valid: false».
Что я уже сделал
Работая с помощью validate () и Discover () построчно, я заметил, что некоторые значения openid-> data [] (думаю, "openid_ *") не попадают в окончательный массив params (например, "openid. *"), Поэтому в моем примере ниже я закодировал их явно.
Я не могу сказать, всегда ли я получаю is_valid: false, потому что мне не хватает значения openid. что-то или потому, что OpenID говорит, что провайдер должен проверять каждый nonce только один раз или что-то еще.
Как вы можете мне помочь Если вы продвинулись так далеко, я мог бы использовать одну из двух вещей. Либо укажите ошибки в моем примере кода, либо укажите процесс, который вы использовали для тестирования такого рода вещей. Нужно ли мне выходить из системы / возвращаться каждый раз, когда я хочу проверить шаг проверки / подтверждения? Существуют ли какие-либо инструменты или процессы, которые ускоряют эту работу?
ПРИМЕРНЫЙ КОД Я заменил свой домен на example.com. Дайте мне знать, если вы хотите какой-либо вывод.
Спасибо, Эрик Б.
try {
$openid = new LightOpenID;
if(!$openid->mode) {
if(isset($_GET['login'])) {
//$openid->identity = 'https://www.google.com/accounts/o8/id';
$openid->identity = 'https://www.google.com/accounts/o8/site-xrds?hd=example.com';
header('Location: ' . $openid->authUrl());
}
?>
<form action="?login" method="post">
<button>Login with Google</button>
</form>
<?php
} elseif($openid->mode == 'cancel') {
echo 'User has canceled authentication!';
} else {
$tClaimedID = 'https://www.google.com/a/example.com/o8/ud?be=o8';
$openid->data['openid_claimed_id'] = $tClaimedID;
foreach (explode(',',$openid->data['openid_signed']) as $item) {
$value = $openid->data['openid_'.str_replace('.','_',$item)];
$params['openid.'.$item] = get_magic_quotes_gpc()?stripslashes($value):$value;
}
$params['openid.mode'] = 'check_authentication';
$params['openid.ns'] = $openid->data['openid_ns'];
$params['openid.signed'] = $openid->data['openid_signed'];
$params['openid.sig'] = $openid->data['openid_sig'];
$tBody2 = $openid->request($tClaimedID,'POST',$params);
echo "\n\n tBody2: ".$tBody2." \n\n";
}
} catch(ErrorException $e) {
echo $e->getMessage();
}