2013-07-13 3 views
0

Steam을 OpenID 공급자로 사용한 웹 사이트를 만들었습니다. 먼저 공유 호스팅에서 호스팅했습니다.서버를 변경하면 Steam이 OpenID로 작동하지 않음

그러나 트래픽은 하루에 50 명의 사용자에서 하루에 1000 명으로 증가했습니다. 나는 그것을 기대하지 않고 나의 주인을 바꾸어야했다. 나는 어떻게 성장할 것인지를보기 위해 더 나은 성능 등으로 또 다른 공유 호스팅을했습니다. 그러나 지금 문제가 있습니다.

마지막 호스트에서 완벽하게 작동 한 Steam이있는 OpenID 로그인이 더 이상 작동하지 않습니다. 나는 Google과 함께 노력했고 효과가있었습니다. 그래서 내 스크립트는 내 새 호스트에서 사용할 수없는 기능을 사용한다고 생각하지 않습니다.

Steam 신원을 입력하면 약 30 초 동안로드 된 다음 Chrome에서 ERR_EMPTY_RESPONSE 오류를 반환합니다. error_reporting E_ALL을 활성화하려고 시도했지만 동일합니다. 여기 LightOpenID을 사용하고 있어요

코드의 부분이 incriminated이다 : 나는 $ openid-> authUrl()를 호출 할 때마다

$openid->identity = 'http://steamcommunity.com/openid'; 
    header('Location: ' . $openid->authUrl()); 

사실, 그것은 작동하지 않습니다. 전체 코드는 다음과 같습니다. http://pastebin.com/rChDzECq

어떻게 해결할 수 있습니까? 미리 감사드립니다.

+0

이 @ tib20을 해결 했습니까? 도메인 (pastebin에 나열되어 있음)에 로그인 할 수 있습니다. – Andy

+0

결국 내 서버에서 웹 요청을 거절하는 것이 Steam이라는 것을 알게되었습니다. 그래서 나는 필요한 데이터를 얻는 친구의 서버에 작은 스크립트를 사용했다. 나는 Steam을 전혀 호출하지 않음으로써 OpenID를 해결했지만 로그인 후에는 필요한 정보를 리턴한다.하지만 문제는 사용자 정보를 얻는 것이었다. – Tiwenty

+0

그것에 대해 우스운 이야기는 내 친구가 나와 같은 호스팅 서비스를 가지고 있다는 것입니다. 하지만 공유 호스팅이므로 다른 사이트의 불법 콘텐츠로 인해 러시아에서 차단 된 IP를 공유한다는 것을 알았 기 때문에 Steam이 IP를 차단하기 때문에 차단할 수 있습니다. 고맙습니다! 너는 나를 생각하게했다! :디 – Tiwenty

답변

1

지난 두 시간 동안 LightOpenID 코드와의 전투에도 문제가있었습니다. 나는 마침내 그것을 작동하게 만들었고 여기서 내가 배웠던 것이 있습니다.

  1. header() 명령 전에는 HTML 출력이 없습니다. 가장 작은 공간조차도 명령에서 아무 것도 리디렉션하지 못하게했습니다.

  2. 내 서버는 file_get_contents()을 사용할 수 없으며 전달 된 URL에서 404 오류 만 반환했습니다. 사용자 지정 file_get_contents_curl() 명령을 사용하여이 문제를 해결할 수 있습니다. 여기에 내가 나 자신을 사용 하나 :

    function file_get_contents_curl($url) { 
        $ch = curl_init(); 
    
        curl_setopt($ch, CURLOPT_HEADER, false); 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
        curl_setopt($ch, CURLOPT_URL, $url); 
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15); 
    
        $data = curl_exec($ch); 
        curl_close($ch); 
    
        return $data; 
    } 
    

나는이 늦은 대답을 알고 있지만 나는 사람을 도움이되기를 바랍니다.