mirror of
https://github.com/YunoHost-Apps/hubzilla_ynh.git
synced 2024-09-03 19:26:21 +02:00
49 lines
No EOL
2 KiB
Text
49 lines
No EOL
2 KiB
Text
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 |