Question

Quelle est la façon la plus simple de demander une adresse e-mail à un fournisseur OpenID?

Y a-t-il une bonne bibliothèque PHP qui simplifie ce problème?

Je sais que les fournisseurs mettent en œuvre les choses différemment. J'ai entendu dire que vous devez faire à la fois un échange d'enregistrement et d'attribut simple. Je voudrais particulièrement m'assurer que cela a fonctionné avec les plus grands fournisseurs, tels que Myopenid et Google.

Questions liées, mais inadéquates:

Était-ce utile?

La solution

Janrain a un Bibliothèque d'identité ouverte PHP, l'une des premières bibliothèques (je crois) d'une entreprise centrée à OpenID. Vous avez mentionné travailler avec MyopenID, sur le site de Janrain.

Cela dit, personnellement, j'utilise la bibliothèque Zend maintenant (j'ai joué avec la bibliothèque Janrain il y a des années), juste parce que je développe généralement en utilisant le framework Zend.

Voici quelques exemples de code si le fournisseur utilise le Extension d'enregistrement simple OpenID.

Cette Section de la référence Zend Le guide montre comment demander des informations sur l'utilisateur avec la demande d'authentification. Voici leur exemple de code édité pour vos besoins:

//require e-mail, get nickname and fullname if available
$sreg = new Zend_OpenId_Extension_Sreg(array(
    'nickname'=>false,
    'email'=>true,
    'fullname'=>false), null, 1.1);
$consumer = new Zend_OpenId_Consumer();
if (!$consumer->login($openid, $returnUrl, null, $sreg)) {
    die("OpenID login failed.");
}

Réaliser la même chose avec la bibliothèque Janrain est similaire, voici un code tiré du fichier try_auth.php du package de bibliothèque (je l'ai édité pour afficher les fonctions de base que vous recherchez):

$auth_request = $consumer->begin($openid);
$sreg_request = Auth_OpenID_SRegRequest::build(
                                 // Required
                                 array('email'),
                                 // Optional
                                 array('fullname', 'nickname'));
$auth_request->addExtension($sreg_request);

Pour Échange d'attribut Découvrez le Janrain Classes AUTH_OPENID_AX, dans la bibliothèque Zend, il y a un Demande de fonctionnalité pour la prise en charge de la hache.

Autres conseils

Je regarderais Bibliothèque OpenID de Zend Framework, Zend_OpenID. Vous devriez pouvoir l'utiliser sans le cadre entier.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top