최신 LightOpenID 릴리스의 OpenID 로그인 시스템을 구현하고 싶습니다. 소스 코드를 한 줄씩 제공하는 예제를 테스트 중입니다. 생성자에서 localhost
을 $_SERVER['HTTP_HOST']
으로 바꿨습니다.라이브 서버에서 OpenID 로그인 코드가 실패합니다.
문제는 개인 네트워크 (Windows Vista의 경우 PHP/5.3.6)의 개발 상자에서 모든 것이 잘 작동하지만 HSP 공용 네트워크 (PHP/5.3.3 CentOS의 경우)에서 유효성 검사가 항상 실패한다는 것입니다.).
나는 var_dump()
을 모두 추가했으며 코드 사본 두 개 모두 정확히 동일한 요청 매개 변수를 생성하고 GET을 통해 정확히 동일한 응답 매개 변수를 수신한다고 말할 수 있습니다. openid.assoc_handle
, openid.sig
, openid.response_nonce
및 openid.return_to
은 다른 값을 가지며 예상되는 동작입니다.
그러나, 내 dev에 상자가 (내가 사용하는 일없이) 오픈 ID 공급자로부터이 수신 :
is_valid:true
ns:http://specs.openid.net/auth/2.0
... 내 라이브 여우는이 수신 :
이is_valid:false
ns:http://specs.openid.net/auth/2.0
이 때로 믿을 수 ASCII 문자가 아닌 문자가 포함되어있어 인코딩 문제가 될 수 없습니다. 호스팅 서비스에 문제가있을 수 있지만 무엇을 알아 내지 못합니다.
가능한 원인 및 문제 해결 팁에 대한 제안이 필요합니다.
수정 해 주셔서 감사합니다. 중복되었지만 $ data와 같은 file_get_contents ($ url, false, $ context)에 대한 두 번째 호출이 작동하지 않는 이유가 궁금합니다. – neobie
보안상의 이유로 한 번의 호출 만 성공적으로 확인할 수 있다고 가정합니다. –
이유는 '넌스'라고합니다. 일회성 전용 토큰입니다. – Maerlyn