diff options
author | tailor <cygnus@janrain.com> | 2006-04-24 18:36:41 +0000 |
---|---|---|
committer | tailor <cygnus@janrain.com> | 2006-04-24 18:36:41 +0000 |
commit | 5b023df13d6f7230268473a5b451ff4a630abe89 (patch) | |
tree | a3654aa2fa8e626f7e7d0d955d6d75c89ade967b /examples/server | |
parent | 9fe157a92a14ee22518c33ba5723cfa9a902faae (diff) | |
download | php-openid-5b023df13d6f7230268473a5b451ff4a630abe89.zip php-openid-5b023df13d6f7230268473a5b451ff4a630abe89.tar.gz php-openid-5b023df13d6f7230268473a5b451ff4a630abe89.tar.bz2 |
[project @ Updated server example config generator to allow addition of OpenIDs; added normalization step to make OpenID input more liberal]
Diffstat (limited to 'examples/server')
-rw-r--r-- | examples/server/setup.php | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/examples/server/setup.php b/examples/server/setup.php index df46bf6..b531f2e 100644 --- a/examples/server/setup.php +++ b/examples/server/setup.php @@ -12,6 +12,8 @@ * @license http://www.gnu.org/copyleft/lesser.html LGPL */ +require_once "Auth/OpenID.php"; + /** * Data. */ @@ -30,7 +32,8 @@ $messages = array(); session_start(); init_session(); -if (!check_session()) { +if (!check_session() || + isset($_GET['add_openid'])) { render_form(); } else { print generate_config(); @@ -41,17 +44,7 @@ if (!check_session()) { */ function check_url($url) { - $p = parse_url($url); - - if ($p === false) { - return false; - } - - if (!array_key_exists('host', $p)) { - return false; - } - - return true; + return (Auth_OpenID::normalizeUrl($url) !== null); } function build_url() { @@ -61,9 +54,11 @@ function build_url() { $scheme = strtolower($parts[0]); if ($port) { - return sprintf("%s://%s:%s%s/server.php", $scheme, $_SERVER['SERVER_NAME'], $port, dirname($_SERVER['PHP_SELF'])); + return sprintf("%s://%s:%s%s/server.php", $scheme, $_SERVER['SERVER_NAME'], + $port, dirname($_SERVER['PHP_SELF'])); } else { - return sprintf("%s://%s%s/server.php", $scheme, $_SERVER['SERVER_NAME'], dirname($_SERVER['PHP_SELF'])); + return sprintf("%s://%s%s/server.php", $scheme, $_SERVER['SERVER_NAME'], + dirname($_SERVER['PHP_SELF'])); } } @@ -398,6 +393,8 @@ if ($_SESSION['users']) { <div> <label for="i_p2" class="field">Password (confirm):</label><input type="password" name="p2" id="i_p2"> </div> + + <input type="submit" name="add_openid" value="Add OpenID"> </div> </div> @@ -478,6 +475,7 @@ function init_session() { } if ($_GET && + isset($_GET['add_openid']) && isset($_GET['openid_url']) && isset($_GET['p1']) && isset($_GET['p2']) && @@ -485,7 +483,8 @@ function init_session() { $_GET['p1']) { if (check_url($_GET['openid_url'])) { - $_SESSION['users'][$_GET['openid_url']] = sha1($_GET['p1']); + $normalized = Auth_OpenID::normalizeUrl($_GET['openid_url']); + $_SESSION['users'][$normalized] = sha1($_GET['p1']); } else { $messages[] = "Cannot add OpenID URL; '".$_GET['openid_url']."' doesn't look like a URL."; } |