Created
February 18, 2012 16:55
-
-
Save dandelionmood/1860174 to your computer and use it in GitHub Desktop.
OpenID - Établissement connexion
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
include('openid.php'); | |
// Rebelote | |
$openid = new LightOpenID('mon.site.fr'); | |
// On doit être dans le contexte d'un retour de connexion | |
// cette variable sera remplie si c'est le cas. | |
if($openid->mode) { | |
if( isset($_GET['openid_mode']) && $_GET['openid_mode'] == 'cancel' ) { | |
throw new Exception("Vous n'avez pas autorisé | |
l'application à accéder à vos données, la procédure | |
ne peut pas se poursuivre."); | |
} | |
else { | |
// On récupère ainsi les variables qui ont été | |
// transmises | |
$attributs = $openid->getAttributes(); | |
// Mode "standard", il faut découper nom et prénom. | |
if(isset($attributs['namePerson'])) { | |
list($prenom,$nom) = explode(' ',$attributs['namePerson']); | |
return Internaute::connexion( | |
$attributs['contact/email'], | |
$prenom, | |
$nom | |
); | |
// Mode non-standard -> Google | |
} else { | |
// Google découpe déjà le prénom et le nom. | |
return Internaute::connexion( | |
$attributs['contact/email'], | |
$attributs['namePerson/first'], | |
$attributs['namePerson/last'] | |
); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
include('openid.php'); | |
// Instanciation, on passe en paramètre le domaine le domaine | |
// du site sur lequel établir la connexion. Il doit absolument | |
// correspondre à la réalité ! | |
$openid = new LightOpenID('mon.site.fr'); | |
// Identifiant du service vers lequel établir la connexion, ici | |
// on se connecte à Google. | |
$openid->identity = 'https://www.google.com/accounts/o8/id'; | |
// Champs qui seront demandés à l'internaute. Les deux derniers | |
// sont spécifiques à Google, voyez la documentation de la | |
// classe LightOpenID. | |
$openid->required = array('contact/email', 'namePerson', | |
'namePerson/first', 'namePerson/last'); | |
// URL de retour qui sera appelée par le formulaire de Google | |
// pour l'envoi des informations de connexion de l'internaute | |
$openid->returnUrl = 'http://mon.site.fr/callback'; | |
// Finalement on redirige l'internaute vers le formulaire de | |
// connexion chez Google pour l'inviter à se connecter. | |
header('Location: '.$openid->authUrl()); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment