2012-07-23 5 views
0

LightOpenID 클래스를 사용하여 내 사이트와 통합 된 Google 로그인을 얻으려고합니다. 이 new LightOpenID($host)new LightOpenID 메소드를 호출하라고 강요, 나는 구조 방법에 대한 인수 1 누락 된 나에게 말하고 있었다, 원래기본 설정에서 오류가 발생하고 유효한 로그인으로 오류를 반환하는 LightOpenID

<?php 
require 'includes/openid.php'; 

try { 
    if(!isset($_GET['openid_mode'])) { 
     if(isset($_GET['login'])) { 
      $openid = new LightOpenID; 
      $openid->identity = 'https://www.google.com/accounts/o8/id'; 
      header('Location: ' . $openid->authUrl()); 
     } 
?> 
<form action="?login" method="post"> 
    <button>Login with Google</button> 
</form> 
<?php 
    } elseif($_GET['openid_mode'] == 'cancel') { 
     echo 'User has canceled authentication!'; 
    } else { 
     $openid = new LightOpenID; 
     echo 'User ' . ($openid->validate() ? $openid->identity . ' has ' : 'has not ') . 'logged in.'; 
    } 
} catch(ErrorException $e) { 
    echo $e->getMessage(); 
} 
echo '<pre>'.print_r($openid,true).'</pre>'; 
?> 

: 나는 기본 코드를 사용하고 있습니다. 하지만 그 코드를 변경하고 로그인을 시도 했으므로 코드를 되 돌린 후에 오류를 포착하지 못했습니다. 오류를 잡으려고합니다 ...

어쨌든, 제가 호스트를 추가 한 후에는 내 Google 계정으로 사이트에 로그인하고 싶은지 묻는 Google 페이지. 나는 로그인 버튼을 눌렀 만 내가 로그인되지 않았 음을 이야기 할 수 있습니다.

User has not logged in. 

LightOpenID Object 
(
    [returnUrl] => myReturnURL 
    [required] => Array 
     (
     ) 

    [optional] => Array 
     (
     ) 

    [verify_peer] => 
    [capath] => 
    [cainfo] => 
    [data] => Array 
     (
      [login] => 
      [openid_ns] => http://specs.openid.net/auth/2.0 
      [openid_mode] => id_res 
      [openid_op_endpoint] => https://www.google.com/accounts/o8/ud 
      [openid_response_nonce] => 2012-07-23T14:06:24ZQwlS1zWFRdvg6A 
      [openid_return_to] => myReturnURL 
      [openid_assoc_handle] => AMlYA9WMwp_rTkH3swNLEF5UASFvhyOR-kqVSXGe7cvXe7ws5z8HHWUu 
      [openid_signed] => op_endpoint,claimed_id,identity,return_to,response_nonce,assoc_handle 
      [openid_sig] => NtOEY8dUM1Hpt2tTR9x0RdN5o1c= 
      [openid_identity] => https://www.google.com/accounts/o8/id?id=AItOawkXNCi5qq-3Vj_esgSQAwmEN_nVIC8BHAQ 
      [openid_claimed_id] => https://www.google.com/accounts/o8/id?id=AItOawkXNCi5qq-3Vj_esgSQAwmEN_nVIC8BHAQ 
     ) 

    [identity:LightOpenID:private] => 
    [claimed_id:LightOpenID:private] => https://www.google.com/accounts/o8/id?id=AItOawkXNCi5qq-3Vj_esgSQAwmEN_nVIC8BHAQ 
    [server:protected] => https://www.google.com/accounts/o8/ud 
    [version:protected] => 2 
    [trustRoot:protected] => mySite 
    [aliases:protected] => 
    [identifier_select:protected] => 
    [ax:protected] => 1 
    [sreg:protected] => 
    [setup_url:protected] => 
    [headers:protected] => Array 
     (
      [cache-control] => no-cache, no-store, max-age=0, must-revalidate 
      [pragma] => no-cache 
      [expires] => Fri, 01 Jan 1990 00:00:00 GMT 
      [date] => Mon, 23 Jul 2012 14:06:26 GMT 
      [content-type] => text/plain; charset=UTF-8 
      [x-content-type-options] => nosniff 
      [x-frame-options] => SAMEORIGIN 
      [x-xss-protection] => 1; mode=block 
      [server] => GSE 
     ) 

) 

이미 구글에 로그인되었으며, 구글 페이지에 로그인 할 때 묻지 않은, 그래서 바로 다시 찍은 내 Google 계정을 사용하여 내 웹 사이트에 로그인하고 싶었는지 확인하십시오. 누구나 내가 왜 로그인했는지 말하는 이유가 보이지 않습니까? 사전에

감사합니다.

답변

1

newest version을 사용하면 올바르게 작동합니다. 링크에 대한

$openid = new LightOpenId('www.domain.com'); 
+0

감사 :

그냥 라이브러리의 최신 버전이 생성자의 인수를 필요로 기억 해요. 그게 내가 필요한거야. 그래도 이미 호스트 이름이 필요했기 때문에 중간 또는 무언가가 있었음에 틀림 없습니다. 다시 한번 고마워. – James