Я новичок в логике OpenID.Я использую компонент OpenID для CakePHP от Cakebaker, с библиотекой PHP OpenID от JanRain.
Все это работает довольно хорошо, но я не смог найти исчерпывающий способ получения информации о пользователях в зависимости от поставщика и метода (sregпротив топора).Вот что я придумала:
if ($axResponse) {
if (is_array($a = $axResponse->get('http://axschema.org/contact/email'))) {
$user_record['email'] = $a[0];
if (is_array($b = $axResponse->get('http://axschema.org/namePerson'))) {
$user_record['nickname'] = $b[0];
}
} else if (is_array($a = $axResponse->get('http://schema.openid.net/contact/email'))) {
$user_record['email'] = $a[0];
if (is_array($b = $axResponse->get('http://schema.openid.net/namePerson'))) {
$user_record['nickname'] = $b[0];
}
}
} else if ($sreg) {
if (isset($sreg['email'])) {
$user_record['email'] = $sreg['email'];
}
if (isset($sreg['nickname'])) {
$user_record['nickname'] = $sreg['nickname'];
}
}
Хотя я успешно проверила это с Google, Yahoo!и OpenID AOL, я уверен, что у меня возникнут проблемы с другими / меньшими поставщиками.Есть ли лучший и лучший способ добиться того же результата?Это кажется особенно ошибочным, если я пытаюсь получить другие дополнительные поля ...