JanRain имеет Open ID PHP Library , одну из первых (я полагаю) библиотек от компании, ориентированной на OpenID. Вы упомянули работу с MyOpenID, который находится на сайте JanRain.
Тем не менее, лично я сейчас пользуюсь библиотекой Zend (я играл с библиотекой JanRain много лет назад), просто потому, что я обычно разрабатываю с использованием Zend Framework.
Вот несколько примеров кода, если провайдер использует расширение простой регистрации OpenID .
В этом разделе справочника Zend Reference показано, как запрашивать информацию пользователя с помощью запроса аутентификации. Вот их пример кода, отредактированный для ваших нужд:
//require e-mail, get nickname and fullname if available
$sreg = new Zend_OpenId_Extension_Sreg(array(
'nickname'=>false,
'email'=>true,
'fullname'=>false), null, 1.1);
$consumer = new Zend_OpenId_Consumer();
if (!$consumer->login($openid, $returnUrl, null, $sreg)) {
die("OpenID login failed.");
}
Выполнение того же с библиотекой JanRain аналогично, вот некоторый код, взятый из файла try_auth.php пакета библиотеки (я отредактировал его, чтобы показать основные функции, которые вы ищете):
$auth_request = $consumer->begin($openid);
$sreg_request = Auth_OpenID_SRegRequest::build(
// Required
array('email'),
// Optional
array('fullname', 'nickname'));
$auth_request->addExtension($sreg_request);
Для Атрибут Exchange посмотрите классы JanRain Auth_OpenID_AX , в библиотеке Zend есть запрос для поддержки AX .