De connexion de l'utilisateur avec LightOpenID
Bonjour
J'ai téléchargé LightOpenID (http://gitorious.org/lightopenid) il ya quelques heures, mais ne peut toujours pas comprendre comment le faire fonctionner.
J'ai reçu cet exemple google enregistrés dans test.php fichier
<?php
require '../lib/init.php';
require '../lib/openID/openid.php';
try {
if(!isset($_GET['openid_mode'])) {
if(isset($_GET['login'])) {
$openid = new LightOpenID;
$openid->identity = 'https://www.google.com/accounts/o8/id';
header('Location: ' . $openid->authUrl());
}
?>
<form action="?login" method="post">
<button>Login with Google</button>
</form>
<?php
} elseif($_GET['openid_mode'] == 'cancel') {
echo 'User has canceled authentication!';
} else {
$openid = new LightOpenID;
echo 'User ' . ($openid->validate() ? $openid->identity . ' has ' : 'has not ') . 'logged in.';
}
} catch(ErrorException $e) {
echo $e->getMessage();
}
echo '<pre>'.print_r($openid,true).'</pre>';
?>
Où init.php est fichier init pour ma page (constantes, des classes, des fonctions, connexion db etc.).
Après l'exécution de ce code que j'ai obtenu bouton avec étiquette "Connexion avec Google" et après avoir appuyé sur elle
echo '<pre>'.print_r($openid,true).'</pre>';
donner quelques informations à propos de la $openid objet
LightOpenID Objet (
[returnUrl] => http://kur.com/openid.php
[obligatoire] => Array
(
)[optional] => Array ( ) [identity:LightOpenID:private] => https://www.google.com/accounts/o8/id [claimed_id:LightOpenID:private] => https://www.google.com/accounts/o8/id [server:protected] => https://www.google.com/accounts/o8/ud [version:protected] => 2 [trustRoot:protected] => http://kur.com [aliases:protected] => [identifier_select:protected] => 1 [ax:protected] => 1 [sreg:protected] => [data:protected] => Array ( [login] => )
)
...rien de spécial... et c'est tout...
Je passe beaucoup de temps à chercher des tutoriels sur google, mais ne peut pas trouver une seule. Pouvez-vous s'il vous plaît aider moi.
Comment connecter l'utilisateur ?
De là où je dois être connecté infos de l'utilisateur (nom d'utilisateur, mail) ?
Je n'ai jamais été à l'aide de open ID et je suis confus....
Merci d'avance
OriginalL'auteur T1000 | 2010-10-22
Vous devez vous connecter pour publier un commentaire.
Ce script est maintenant fonctionne bien de mon localhost exécutant apache sur mon ordinateur portable avec une connexion wifi à internet.
J'ai été dit que vous devez passer votre domaine vers le nouveau LightOpenId objet lors de sa création.
$iniConfig
est un parse_ini_file tableau stocké à l'extérieur de la racine du document où je stocke toutes mes variables importantes.dans ce cas
Donc, j'ai créer un nouvel objet et inclure le nom de domaine que le serveur est sur:
Je l'ai écrit de cette façon, et je n'ai pas vérifié pour voir si elle fonctionne sans le domaine..
OriginalL'auteur Scott Fleming
Comment connecter l'utilisateur?
Dans votre exemple, il y a une ligne montrant comment effectuer l'authentification:
Si
$openid->validate()
renvoie true, cela signifie que l'utilisateur qui prétend être$openid->identity
est authentifié.Si vous voulez le comparer à d'authentification standard:
Standard auth:
OpenID auth(avec LightOpenID):
$openid->validate()
validate()
renvoie la valeur true, l'utilisateur est authentifié (avec$openid->identity
), nous avons donc créé un cookie pour se souvenir de lui(ou tout autre chose que vous voulez faire sur une connexion réussie).Fondamentalement, une fois que vous confirmez que l'utilisateur est le seul à qui il prétend qu'il est (c'est à dire qu'il a authentifié), vous devez procéder comme si c'était normal auth.
Habituellement, vous devez stocker l'identité quelque part, avec un id de session.
D'où je dois me connecté les infos de l'utilisateur (nom d'utilisateur, mail) ?
Le nom d'utilisateur est dans
$openid->identity
. Cependant, vous pourriez vouloir utiliser un pseudo comme nom affiché.L'obtention d'un pseudo et d'une adresse e-mail cependant, il nécessite une configuration supplémentaire.
En gros, avant d'appeler
$openid->authUrl()
, vous devez ajouter:Que la ligne serait la cause de LightOpenID aux demandes de ces paramètres. Vous pouvez voir une liste des autres paramètres (qui peut ou peut ne pas être pris en charge par l'OPs) à axschema.org.
Alors, pour obtenir les valeurs de ceux qui, après l'appel de
validate()
, appel$openid->getAttributes()
. Il sera de retour tous disponibles paramerers, par exemple:Cependant, être conscient du fait que cette liste peut contenir d'autres paramètres et ne peut pas contenir ceux que vous avez demandé. Fondamentalement, l'OP est libre de retourner ce qu'il veut, de sorte que vous devez être préparé pour le manque de certaines valeurs.
OriginalL'auteur Mewp
lorsqu'un utilisateur clique sur " se connecter avec Google sur le bouton 'example-google.php page, vous serez redirigé vers google, et si l'utilisateur accepte la demande, il sera redirigé vers votre page de nouveau, et vous pouvez obtenir le Openid de l'utilisateur.
Mais si vous souhaitez obtenir d'autres informations ou modifiez le OpenID fournir, vous pouvez sur ce chemin:
OriginalL'auteur Ali
Vous devez l'exécuter sur un serveur avec le port 80 ouvert à l'extérieur de web, si vous l'exécutez sur 127.0.0.1 Google ne peut pas accéder vous et le retour d'info
OriginalL'auteur Colum