2009-11-12 4 views
3
은 오픈 ID 공급자로부터 이메일 주소를 요청하는 가장 간단한 방법은 무엇입니까

?PHP에서 오픈 ID 공급자로부터 이메일 주소를 요청

이 문제를 단순화하는 좋은 PHP 라이브러리가 있습니까?

나는 공급자가 사물을 다르게 구현하는 것을 알고있다. 단순 등록 및 속성 교환을 모두 수행해야한다고 들었습니다. 특히 MyOpenID 및 Google과 같은 가장 큰 제공 업체와 협력했는지 확인하고 싶습니다.

관련

하지만 부적절한 질문 :

답변

2

JanRain는 Open ID PHP Library, 오픈 ID에 대한 회사의 중심에서 첫 번째 라이브러리 (내가 믿는) 중 하나가 있습니다. JanRain의 사이트 인 MyOpenID와의 작업에 대해 언급했습니다.

개인적으로 나는 일반적으로 젠드 프레임 워크를 사용하여 개발해서, (나는 년 전 JanRain 라이브러리와 함께 연주) 이제 젠드 라이브러리를 사용하여 말했다.

제공자가 OpenID Simple Registration Extension을 사용하는 경우 몇 가지 코드 예가 ​​있습니다.

section of the 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 파일에서에서 가져온 일부 코드가있어, 유사하다 (I은 기본 기능을 보여주기 위해 그것을 편집 당신이)를 찾고 :

$auth_request = $consumer->begin($openid); 
$sreg_request = Auth_OpenID_SRegRequest::build(
           // Required 
           array('email'), 
           // Optional 
           array('fullname', 'nickname')); 
$auth_request->addExtension($sreg_request); 

특성에 대한 대가로 체크 아웃 JanRain Auth_OpenID_AX Classes, 젠드 라이브러리의 feature request for AX support있다.

+0

감사합니다 ...하지만 Zend를 사용하여 전자 메일 주소를 가져 오는 경험이 있습니까? 다른 공급자와 어떻게 작동합니까? – philfreo

+0

Zend Documentation에서 예제 코드를 추가했습니다. –

+0

기본적으로 SR로 데이터를 가져 와서 실패한 경우 AX를 시도해야합니다. – philfreo

1

나는 Zend Framework's OpenID Library, Zend_OpenID 볼 것이다. 당신은 전체 프레임 워크없이 그것을 사용할 수 있어야합니다.

+0

감사합니다 ...하지만 Zend를 사용하여 이메일 주소를 가져 오는 경험이 있습니까? 다른 공급 업체와 얼마나 잘 작동합니까? – philfreo

관련 문제