summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--examples/server/lib/actions.php7
-rw-r--r--examples/server/lib/render/idpage.php13
-rw-r--r--examples/server/lib/render/userXrds.php34
3 files changed, 52 insertions, 2 deletions
diff --git a/examples/server/lib/actions.php b/examples/server/lib/actions.php
index 94fab77..05c0528 100644
--- a/examples/server/lib/actions.php
+++ b/examples/server/lib/actions.php
@@ -7,6 +7,7 @@ require_once "lib/render.php";
require_once "lib/render/login.php";
require_once "lib/render/idpage.php";
require_once "lib/render/idpXrds.php";
+require_once "lib/render/userXrds.php";
require_once "Auth/OpenID.php";
@@ -148,4 +149,10 @@ function action_idpXrds()
return idpXrds_render();
}
+function action_userXrds()
+{
+ $identity = $_GET['user'];
+ return userXrds_render($identity);
+}
+
?> \ No newline at end of file
diff --git a/examples/server/lib/render/idpage.php b/examples/server/lib/render/idpage.php
index 9659297..8067732 100644
--- a/examples/server/lib/render/idpage.php
+++ b/examples/server/lib/render/idpage.php
@@ -7,6 +7,7 @@ define('idpage_pat',
'<html>
<head>
<link rel="openid2.provider openid.server" href="%s"/>
+ <meta http-equiv="X-XRDS-Location" content="%s" />
</head>
<body>
This is the identity page for users of this server.
@@ -15,8 +16,16 @@ define('idpage_pat',
function idpage_render($identity)
{
- $body = sprintf(idpage_pat, buildURL());
- return array(array(), $body);
+ $xrdsurl = buildURL('userXrds')."?user=".urlencode($identity);
+
+ $headers = array(
+ 'X-XRDS-Location: '.$xrdsurl);
+
+
+ $body = sprintf(idpage_pat,
+ $xrdsurl,
+ buildURL());
+ return array($headers, $body);
}
?> \ No newline at end of file
diff --git a/examples/server/lib/render/userXrds.php b/examples/server/lib/render/userXrds.php
new file mode 100644
index 0000000..d38d894
--- /dev/null
+++ b/examples/server/lib/render/userXrds.php
@@ -0,0 +1,34 @@
+<?php
+
+require_once "lib/session.php";
+require_once "lib/render.php";
+
+require_once "Auth/OpenID/Discover.php";
+
+define('user_xrds_pat', '<?xml version="1.0" encoding="UTF-8"?>
+<xrds:XRDS
+ xmlns:xrds="xri://$xrds"
+ xmlns="xri://$xrd*($v*2.0)">
+ <XRD>
+ <Service priority="0">
+ <Type>%s</Type>
+ <Type>%s</Type>
+ <URI>%s</URI>
+ </Service>
+ </XRD>
+</xrds:XRDS>
+');
+
+function userXrds_render($identity)
+{
+ $headers = array('Content-type: application/xrds+xml');
+
+ $body = sprintf(xrds_pat,
+ Auth_OpenID_TYPE_2_0,
+ Auth_OpenID_TYPE_1_1,
+ buildURL());
+
+ return array($headers, $body);
+}
+
+?> \ No newline at end of file