| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.gdata.clientlogin">
- <title>Authentification avec ClientLogin</title>
- <para>
- Le mécanisme dit "ClientLogin" vous permet d'écrire des applications <acronym>PHP</acronym> qui
- récupèrent une authentification vis à vis des services Google, en spécifiant des
- identifiants dans le client <acronym>HTTP</acronym>.
- </para>
- <para>
- Voyez <ulink url="http://code.google.com/apis/accounts/AuthForInstalledApps.html">
- http://code.google.com/apis/accounts/AuthForInstalledApps.html </ulink> pour plus
- d'informations sur l'authentification ClientLogin de Google Data.
- </para>
- <para>
- La documentation Google indique que le mécanisme ClientLogin est approprié dans le cas
- d'applications embarquées, à la différence du mécanisme AuthSub, utilisé pour les
- applications Web ayant recours à une authentification extérieure. AuthSub récupère des
- identifiant d'un utilisateur de l'application Web, et un navigateur réagissant aux
- redirections est requis. Le processus ClientLogin, lui, utilise du code <acronym>PHP</acronym> tel qu'écrit
- dans l'application elle-même. L'utilisateur de l'application n'entre pas en jeu pour fournir
- des identifiants de manière interactive.
- </para>
- <para>
- Les identifiants fournis au mécanisme ClientLogin doivent correspondre à des
- identifiants valides pour les services Google, mais il n'est pas nécessaire qu'ils
- correspondent à ceux de l'utilisateur de l'application.
- </para>
- <sect2 id="zend.gdata.clientlogin.login">
- <title>Création d'un client HTTP "ClientLogin" authentifié</title>
- <para>
- La création d'un client <acronym>HTTP</acronym> "ClientLogin" authentifié est un processus servi par
- la méthode statique <methodname>Zend_Gdata_ClientLogin::getHttpClient()</methodname>.
- Passez lui les identifiants Google services sous forme de texte (plain text). La valeur
- de retour de cette méthode est un objet <classname>Zend_Http_Client</classname>.
- </para>
- <para>
- Le troisième paramètre optionnel est le nom du service Google Data. Par exemple,
- il peut être "cl" pour Google Calendar. Par défaut il s'agit de "xapi", ce qui
- correspond au service générique de Google Data.
- </para>
- <para>
- La quatrième paramètre optionnel est une instance de
- <classname>Zend_Http_Client</classname>. Vous pouvez alors configurer votre client à
- part (par exemple lui ajouter des options pour la gestion d'un Proxy). Si vous passez
- <constant>NULL</constant> à ce paramètre, alors un client
- <classname>Zend_Http_Client</classname> générique est crée.
- </para>
- <para>
- Le cinquième paramètre optionnel est le nom du client que les serveurs Google Data
- identifieront en interne. Par défaut il s'agit de "Zend-ZendFramework".
- </para>
- <para>
- Le sixième paramètre, toujours optionnel, est l'ID pour le challenge
- <trademark>CAPTCHA</trademark> retourné par le serveur. Ce paramètre n'est nécessaire
- que si vous avez reçu un challenge lors d'un processus d'authentification passé, et que
- vous le renvoyez pour résolution..
- </para>
- <para>
- Le septième paramètre optionnel représente la réponse de l'utilisateur au
- challenge <trademark>CAPTCHA</trademark> précédemment reçu. Il n'est donc nécessaire que
- si vous avez reçu un challenge <trademark>CAPTCHA</trademark> à résoudre.
- </para>
- <para>
- Ci dessous, un exemple d'une application <acronym>PHP</acronym> qui s'authentifie auprès du service
- Google Calendar et crée un objet client <classname>Zend_Gdata</classname> utilisant
- l'objet <classname>Zend_Http_Client</classname> fraîchement authentifié :
- </para>
- <programlisting language="php"><![CDATA[
- // identifiants de compte Google
- $email = 'johndoe@gmail.com';
- $passwd = 'xxxxxxxx';
- try {
- $client = Zend_Gdata_ClientLogin::getHttpClient($email, $passwd, 'cl');
- } catch (Zend_Gdata_App_CaptchaRequiredException $cre) {
- echo 'l'URL de l\'image CAPTCHA est: ' . $cre->getCaptchaUrl() . "\n";
- echo 'Token ID: ' . $cre->getCaptchaToken() . "\n";
- } catch (Zend_Gdata_App_AuthException $ae) {
- echo 'Problème d'authentification : ' . $ae->exception() . "\n";
- }
- $cal = new Zend_Gdata_Calendar($client);
- ]]></programlisting>
- </sect2>
- <sect2 id="zend.gdata.clientlogin.terminating">
- <title>Fermer un client HTTP authentifié par ClientLogin</title>
- <para>
- Il n'y a pas de méthode pour supprimer l'authentification effectuée via un
- ClientLogin, comme c'est le cas avec le système de jeton du procédé AuthSub. Les
- identifiants dans le ClientLogin étant un identifiant et un mot de passe de compte
- Google, ils ne peuvent être invalidés et sont utilisables de manière continue.
- </para>
- </sect2>
- </sect1>
|