$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);
/** * Extract a FetchRequest from an OpenID message * * @param request: The OpenID request containing the attribute * fetch request * * @returns mixed An Auth_OpenID_Extension_AX_Error or the * Auth_OpenID_Extension_AX_FetchRequest extracted from the request message if * successful */ static function fromOpenIDRequest($request) { $m = $request->message; $obj = new Auth_OpenID_Extension_AX_FetchRequest(); $ax_args = $m->getArgs($obj->ns_uri); $result = $obj->parseExtensionArgs($ax_args); if (Auth_OpenID_Extension_AX::isError($result)) { return $result; } if ($obj->update_url) { // Update URL must match the openid.realm of the // underlying OpenID 2 message. $realm = $m->getArg(Auth_OpenID_OPENID_NS, 'realm', $m->getArg(Auth_OpenID_OPENID_NS, 'return_to')); if (!$realm) { $obj = new Auth_OpenID_Extension_AX_Error(sprintf("Cannot validate update_url %s " . "against absent realm", $obj->update_url)); } else { if (!Auth_OpenID_TrustRoot::match($realm, $obj->update_url)) { $obj = new Auth_OpenID_Extension_AX_Error(sprintf("Update URL %s failed validation against realm %s", $obj->update_url, $realm)); } } } return $obj; }