Beispiel #1
0
$attribute[] = Auth_OpenID_Extension_AX_AttrInfo::make('http://axschema.org/namePerson/last', 1, 1);
$attribute[] = Auth_OpenID_Extension_AX_AttrInfo::make('http://schema.openid.net/contact/fullname', 1, 1);
$attribute[] = Auth_OpenID_Extension_AX_AttrInfo::make('http://axschema.org/contact/email', 1, 1);
$attribute[] = Auth_OpenID_Extension_AX_AttrInfo::make('http://axschema.org/contact/phone/default', 1, 1);
// default billing address
$attribute[] = Auth_OpenID_Extension_AX_AttrInfo::make('http://schema.openid.net/contact/street1', 1, 1);
$attribute[] = Auth_OpenID_Extension_AX_AttrInfo::make('http://schema.openid.net/contact/street2', 1, 1);
$attribute[] = Auth_OpenID_Extension_AX_AttrInfo::make('http://axschema.org/contact/city/home', 1, 1);
$attribute[] = Auth_OpenID_Extension_AX_AttrInfo::make('http://axschema.org/contact/state/home', 1, 1);
$attribute[] = Auth_OpenID_Extension_AX_AttrInfo::make('http://axschema.org/contact/postalCode/home', 1, 1);
$attribute[] = Auth_OpenID_Extension_AX_AttrInfo::make('http://axschema.org/contact/country/home', 1, 1);
// e.g. en_GB
$attribute[] = Auth_OpenID_Extension_AX_AttrInfo::make('http://axschema.org/pref/language', 1, 1);
// e.g. Europe/London
$attribute[] = Auth_OpenID_Extension_AX_AttrInfo::make('http://axschema.org/pref/timezone', 1, 1);
// PayPal specific attributes
$attribute[] = Auth_OpenID_Extension_AX_AttrInfo::make('https://www.paypal.com/webapps/auth/schema/verifiedAccount', 1, 1);
$attribute[] = Auth_OpenID_Extension_AX_AttrInfo::make('https://www.paypal.com/webapps/auth/schema/payerID', 1, 1);
$ax = new Auth_OpenID_Extension_AX_FetchRequest();
foreach ($attribute as $attr) {
    $ax->add($attr);
}
$auth->addExtension($ax);
$scriptPath = implode("/", explode('/', $_SERVER["REQUEST_URI"], -1));
if (isset($_GET['popup'])) {
    $returnScript = $scriptPath . '/verify.php?popup=true';
} else {
    $returnScript = $scriptPath . '/verify.php';
}
$url = $auth->redirectURL('https://' . $_SERVER["SERVER_NAME"], 'https://' . $_SERVER["SERVER_NAME"] . $returnScript);
header('Location: ' . $url);
Beispiel #2
0
 /**
  * Given attribute exchange arguments, populate this FetchRequest.
  *
  * @return $result Auth_OpenID_Extension_AX_Error if the data to be parsed
  * does not follow the attribute exchange specification. At least
  * when 'if_available' or 'required' is not specified for a
  * particular attribute type.  Returns true otherwise.
  */
 function parseExtensionArgs($ax_args)
 {
     $result = $this->_checkMode($ax_args);
     if (Auth_OpenID_Extension_AX::isError($result)) {
         return $result;
     }
     $aliases = new Auth_OpenID_NamespaceMap();
     foreach ($ax_args as $key => $value) {
         if (strpos($key, 'type.') === 0) {
             $alias = substr($key, 5);
             $type_uri = $value;
             $alias = $aliases->addAlias($type_uri, $alias);
             if ($alias === null) {
                 return new Auth_OpenID_Extension_AX_Error(sprintf("Could not add alias %s for URI %s", $alias, $type_uri));
             }
             $count_s = Auth_OpenID::arrayGet($ax_args, 'count.' . $alias);
             if ($count_s) {
                 $count = Auth_OpenID::intval($count_s);
                 if ($count === false && $count_s === Auth_OpenID_Extension_AX_UNLIMITED_VALUES) {
                     $count = $count_s;
                 }
             } else {
                 $count = 1;
             }
             if ($count === false) {
                 return new Auth_OpenID_Extension_AX_Error(sprintf("Integer value expected for %s, got %s", 'count.' . $alias, $count_s));
             }
             $attrinfo = Auth_OpenID_Extension_AX_AttrInfo::make($type_uri, $count, false, $alias);
             if (Auth_OpenID_Extension_AX::isError($attrinfo)) {
                 return $attrinfo;
             }
             $this->add($attrinfo);
         }
     }
     $required = Auth_OpenID_Extension_AX_toTypeURIs($aliases, Auth_OpenID::arrayGet($ax_args, 'required'));
     foreach ($required as $type_uri) {
         $attrib = $this->requested_attributes[$type_uri];
         $attrib->required = true;
     }
     $if_available = Auth_OpenID_Extension_AX_toTypeURIs($aliases, Auth_OpenID::arrayGet($ax_args, 'if_available'));
     $all_type_uris = array_merge($required, $if_available);
     foreach ($aliases->iterNamespaceURIs() as $type_uri) {
         if (!in_array($type_uri, $all_type_uris)) {
             return new Auth_OpenID_Extension_AX_Error(sprintf('Type URI %s was in the request but not ' . 'present in "required" or "if_available"', $type_uri));
         }
     }
     $this->update_url = Auth_OpenID::arrayGet($ax_args, 'update_url');
     return true;
 }