| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- <!-- EN-Revision: 13842 -->
- <sect1 id="zend.gdata.clientlogin">
- <title>Authentification avec ClientLogin</title>
- <para>Le mécanisme dit "ClientLogin" vous permet d'écrire des applications PHP qui récupèrent une authentification
- vis à vis des services Google, en spécifiant des identifiants dans le client HTTP.</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 PHP 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 HTTP "ClientLogin" authentifié est un processus servi par la méthode statique
- <classname>Zend_Gdata_ClientLogin::getHttpClient()</classname>. 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
- <code>null</code> à 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 PHP 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 role="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>
|