streams/library/openid/README

49 lines
2 KiB
Text
Raw Normal View History

2014-02-18 02:50:24 +00:00
This class provides a simple interface for OpenID (1.1 and 2.0) authentication.
Supports Yadis discovery.
The authentication process is stateless/dumb.
Usage:
Sign-on with OpenID is a two step process:
Step one is authentication with the provider:
<code>
$openid = new LightOpenID('my-host.example.org');
$openid->identity = 'ID supplied by user';
header('Location: ' . $openid->authUrl());
</code>
The provider then sends various parameters via GET, one of them is openid_mode.
Step two is verification:
<code>
if ($this->data['openid_mode']) {
$openid = new LightOpenID('my-host.example.org');
echo $openid->validate() ? 'Logged in.' : 'Failed';
}
</code>
*
Change the 'my-host.example.org' to your domain name. Do NOT use $_SERVER['HTTP_HOST']
for that, unless you know what you are doing.
*
Optionally, you can set $returnUrl and $realm (or $trustRoot, which is an alias).
The default values for those are:
$openid->realm = (!empty($_SERVER['HTTPS']) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'];
$openid->returnUrl = $openid->realm . $_SERVER['REQUEST_URI'];
If you don't know their meaning, refer to any openid tutorial, or specification. Or just guess.
*
AX and SREG extensions are supported.
To use them, specify $openid->required and/or $openid->optional before calling $openid->authUrl().
These are arrays, with values being AX schema paths (the 'path' part of the URL).
For example:
$openid->required = array('namePerson/friendly', 'contact/email');
$openid->optional = array('namePerson/first');
If the server supports only SREG or OpenID 1.1, these are automaticaly
mapped to SREG names, so that user doesn't have to know anything about the server.
*
To get the values, use $openid->getAttributes().
*
The library requires PHP >= 5.1.2 with curl or http/https stream wrappers enabled.
@author Mewp
@contributors Brice http://github.com/brice/
@copyright Copyright (c) 2010, Mewp
@copyright Copyright (c) 2010, Brice
@license http://www.opensource.org/licenses/mit-license.php MIT