2011-03-28 2 views
10

LightOpenID를 사용하여 Google Apps에 대해 OpenID를 인증합니다. 나는 초기 authURL() 요청을하고 모든 것이 좋다. validate()를 호출하면 실패합니다. 풍부한 에코를 통해 validate()의 마지막 몇 줄까지 추적했습니다. 검증에서Google Apps에서 LightOpenID validate()가 실패했습니다.

()는 저가의 ($ URL)로 전달되는 URL을 https://www.google.com/accounts/o8/user-xrds?uri=http://my-domain.com/openid?id=117665028262121597341

가 존재하지 않은 xrds 로케이션에 대한()는 우선 발견이다. discover()는 content-type이 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> 

발견,/서비스()는 우리가 오픈 ID 2를 사용하고 $ 서버 변수로 URI 필드를 추출하는 것을 본다이다. discover()는 CanonicalID 추출을 계속하며 Google이 SREG가 아닌 AX를 지원한다는 사실을 알게됩니다. 마지막으로 discover()는 $ server를 https://www.google.com/a/my-domain.com/o8/ud?be=o8

으로 반환합니다. validate()는 magic_quotes에 따라 data []의 각 필드를 정리하여 계속됩니다. 그것은 openid.mode를 'check_authentication'으로 설정하고, discover ($ url)에 의해 반환 된 $ 서버와 '/ is_valid : true'에 대한 preg를 요청합니다. 실패한 마지막 preg_match입니다. $ server url은 유효성을 반환하지 않고 대신 "요청한 페이지가 유효하지 않습니다."라고 말합니다.

내가 찾고있는 답변은 Google Apps 유효성 검사를위한 올바른 URL입니다. 가까운 순간에 URL이 어떻게 보이는지, Google Apps에서 반환 한 정보를 파헤쳐보고 그런 정보가 있는지 확인합니다.

ADDED : 중요한 점은 확실하지만 /.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"

더 많은 코드 또는 데이터가 필요하면 알려주십시오.

감사합니다, 에릭 B.

+0

나는 Google Apps 및 LightOpenId와 같은 어려움을 경험하고 ... 그것은 단지 그러나 최근에 일어나고 시작했다. – Greg

+0

그리고 이제 거의 같은 해에 다시 돌아 왔습니다. 나는 작년에이 문제가 사라진 것을 거의 기억할 수있다. 다시 인터넷 검색을 시도해보고 나를 데려다 본 모습을 ... – Greg

+0

몇 가지 가능한 답변 : http://stackoverflow.com/questions/3995011/log-in-the-user- with-lightopenid http://stackoverflow.com/questions/14752715/implementing-openid-with-php/14754571#14754571 – ethrbunny

답변

0

확실 PHP 컬 확장 서버에 설치되어 있는지 확인. 우리는 최근 생산에서 똑같은 증상을 겪었으며 서버 프로비저닝 문제와 관련이 있습니다. 데비안에서 응용 프로그램을 실행하는 경우

, 단순히 사용

apt-get install php5-curl