1,4 → 1,11 |
<?php |
/** |
* La classe OpenIdClient est une implémentation d'un client OpenId, depuis une classe Zend. |
* Elle permet d'établir une connexion avec un serveur, en fonction d'un identifiant OpenId. |
* Elle permet de communiquer de manière sécurisée avec ce serveur, et doit aboutir a une |
* identification centralisée. |
* */ |
|
class OpenIdClient { |
|
//OpenID 2.0 namespace. Tous les messages OpenID 2.0 DOIVENT contenir la variable openid.ns et sa valeur |
5,28 → 12,22 |
const NS_2_0 = 'http://specs.openid.net/auth/2.0'; |
|
|
// TODO : remplacer _storage par une gestion par cache ? |
/** |
* Reference to an implementation of storage object |
* |
* @var Zend_OpenId_Consumer_Storage $_storage |
* Variable permettant le stockage d'informations, notammenent à propos des clés DiffieHellmann |
* @var Storage $_storage |
*/ |
protected $_storage = null; |
|
/** |
* Internal cache to prevent unnecessary access to storage |
* |
* Tableau "cache" interne permettant d'éviter des accès inutiles au fichier storage |
* @var array $_cache |
*/ |
protected $_cache = array(); |
|
|
// TODO : les associations dans ZEND sont gérées avec le fichier Stockage, faire pareil |
//Association |
private $association = Array('url' => '', 'handle' => '', 'macFunc' => '', 'secret' => '', 'expires' => 0); |
|
// Client pour les requetes. |
private $client; |
|
|
/** |
* Constructeur de l'application |
* */ |
42,13 → 43,15 |
* > Ne retourne rien si true car redirige vers l'adresse du serveur OID |
* */ |
//FIXME : le paramètre immediate ? |
// ATTENTION : ca marche en false mais pas en true !!! |
// A vérifier mais ça doit permettre de passer directement le mot de passe. Il reste plus qu'à trouver le nom de la variable mot de passe. |
|
function login($id, $immediate = false) { |
|
// FIXME : l'original retourne la fonction checkId, avec le parametre immediate = true |
// L'original retourne la fonction checkId, avec le parametre immediate = true |
// Je ne comprends pas l'utilité, je fusionne les deux pour l'instant |
// FIXME : si pas de comportement étrange, valider. |
|
|
//Tests et arrêt si non validé : |
//Normaliser (traite si XRI ou URL, normalize URL) |
//FIXME : voir avec JP pour équivalent dans framework |