2011-07-31 29 views
0

私はOpenIdを使用するPHPコードをいくつか持っていて、自分のGoogle IDが自分のサイトにログインするために働いていることを確認した後に実行します。OpenIdログイン後にユーザーの資格情報を取得する方法は?

私は などの基本的な資格情報を抽出できるようにする必要があります - 最初の名前 - 姓 - 電子メール - 緯度/経度possible..ifそのOKではない場合。ここで

など、私はこのコードを持っているが、私は名前/電子メールを取得する方法を確認していない

<?php 
require_once "common.php"; 
session_start(); 

function escape($thing) 
{ 
    return htmlentities($thing); 
} 

function run() 
{ 
    $consumer = getConsumer(); 
    var_dump($consumer); 
    echo '<p>test 2</p>'; 

    // Complete the authentication process using the server's 
    // response. 
    $return_to = getReturnTo(); 

     var_dump($return_to); 
    echo '<p>test 3</p>';  
    $response = $consumer->complete($return_to); 

     var_dump($response); 
    echo '<p>test 4</p>';  

    // Check the response status. 
    if ($response->status == Auth_OpenID_CANCEL) 
    { 
     // This means the authentication was cancelled. 
     $msg = 'Verification canceled.'; 
     echo '<p>Canceled</p>'; 
    } 
    else 
    if ($response->status == Auth_OpenID_FAILURE) 
    { 
     echo '<p>Open Id Failure</p>'; 
     // Authentication failed; display the error message. 
     $msg = "OpenID authentication failed: " . $response->message; 
    } 
    else 
    if ($response->status == Auth_OpenID_SUCCESS) 
    { 
      echo '<p>SUCCESS</p>'; 
     // This means the authentication succeeded; extract the 
     // identity URL and Simple Registration data (if it was 
     // returned). 
     $openid = $response->getDisplayIdentifier(); 

     var_dump($openid); 

     $esc_identity = escape($openid); 



     $success = sprintf('You have successfully verified ' . 
          '<a href="%s">%s</a> as your identity.', 
          $esc_identity, $esc_identity); 

     if ($response->endpoint->canonicalID) 
     { 
      $escaped_canonicalID = escape($response->endpoint->canonicalID); 
      $success .= ' (XRI CanonicalID: '.$escaped_canonicalID.') '; 
     } 

     $sreg_resp = Auth_OpenID_SRegResponse::fromSuccessResponse($response); 

     $sreg = $sreg_resp->contents(); 

     var_dump($sreg); 
    echo '<p>test sreg</p>';   

     if (@$sreg['email']) 
     { 
      $success .= " You also returned '".escape($sreg['email']). 
       "' as your email."; 

       echo $success; 
     } 
     else 
     { 
      echo '<p>Not email success</p>'; 
     } 


     if (@$sreg['nickname']) 
     { 
      $success .= " Your nickname is '".escape($sreg['nickname']). 
       "'."; 

      echo $success; 
     } 
     else 
     { 
        echo '<p>Not nickname success</p>'; 
     } 

     if (@$sreg['fullname']) 
     { 
      $success .= " Your fullname is '".escape($sreg['fullname']). 
       "'."; 

           echo $success; 
     } 
     else 
     { 
         echo '<p>Not full name success</p>'; 
     } 

     $pape_resp = Auth_OpenID_PAPE_Response::fromSuccessResponse($response); 

     if ($pape_resp) 
     { 
      if ($pape_resp->auth_policies) 
      { 
       $success .= "<p>The following PAPE policies affected the authentication:</p><ul>"; 

       foreach ($pape_resp->auth_policies as $uri) 
       { 
        $escaped_uri = escape($uri); 
        $success .= "<li><tt>$escaped_uri</tt></li>"; 
       } 

       $success .= "</ul>"; 
      } 
      else 
      { 
       $success .= "<p>No PAPE policies affected the authentication.</p>"; 
      } 

      if ($pape_resp->auth_age) 
      { 
       $age = escape($pape_resp->auth_age); 
       $success .= "<p>The authentication age returned by the " . 
        "server is: <tt>".$age."</tt></p>"; 
      } 

      if ($pape_resp->nist_auth_level) 
      { 
       $auth_level = escape($pape_resp->nist_auth_level); 
       $success .= "<p>The NIST auth level returned by the " . 
        "server is: <tt>".$auth_level."</tt></p>"; 
      } 
    } 
    else 
    { 
      $success .= "<p>No PAPE response was sent by the provider.</p>"; 
    } 
} 
echo '<p>End of script - finish auth</p>'; 
    include 'http://www.comehike.com/index.php'; 


          // $_SESSION['user_id'] = $user_id; 
          // $_SESSION['user_email'] = $row['user_email']; 
          // $_SESSION['user_lat'] = $row['lat']; 
          // $_SESSION['user_lng'] = $row['lng']; 
          // $_SESSION['first_name'] = $row['first_name']; 
} 

run(); 


?> 

この事のためUXのテストです:http://www.comehike.com/account/member_home.php

答えて

0

私はこれを信じますExample usage of AX in PHP OpenID

GoogleとYahooの属性交換(AX)が必要です。 sregとaxの両方を使って必要な情報を得ることができるはずです。

関連する問題