Zend_Gdata_ClientLogin.xml 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.gdata.clientlogin">
  5. <title>Authentification avec ClientLogin</title>
  6. <para>
  7. Le mécanisme dit "ClientLogin" vous permet d'écrire des applications <acronym>PHP</acronym> qui
  8. récupèrent une authentification vis à vis des services Google, en spécifiant des
  9. identifiants dans le client <acronym>HTTP</acronym>.
  10. </para>
  11. <para>
  12. Voyez <ulink url="http://code.google.com/apis/accounts/AuthForInstalledApps.html">
  13. http://code.google.com/apis/accounts/AuthForInstalledApps.html </ulink> pour plus
  14. d'informations sur l'authentification ClientLogin de Google Data.
  15. </para>
  16. <para>
  17. La documentation Google indique que le mécanisme ClientLogin est approprié dans le cas
  18. d'applications embarquées, à la différence du mécanisme AuthSub, utilisé pour les
  19. applications Web ayant recours à une authentification extérieure. AuthSub récupère des
  20. identifiant d'un utilisateur de l'application Web, et un navigateur réagissant aux
  21. redirections est requis. Le processus ClientLogin, lui, utilise du code <acronym>PHP</acronym> tel qu'écrit
  22. dans l'application elle-même. L'utilisateur de l'application n'entre pas en jeu pour fournir
  23. des identifiants de manière interactive.
  24. </para>
  25. <para>
  26. Les identifiants fournis au mécanisme ClientLogin doivent correspondre à des
  27. identifiants valides pour les services Google, mais il n'est pas nécessaire qu'ils
  28. correspondent à ceux de l'utilisateur de l'application.
  29. </para>
  30. <sect2 id="zend.gdata.clientlogin.login">
  31. <title>Création d'un client HTTP "ClientLogin" authentifié</title>
  32. <para>
  33. La création d'un client <acronym>HTTP</acronym> "ClientLogin" authentifié est un processus servi par
  34. la méthode statique <methodname>Zend_Gdata_ClientLogin::getHttpClient()</methodname>.
  35. Passez lui les identifiants Google services sous forme de texte (plain text). La valeur
  36. de retour de cette méthode est un objet <classname>Zend_Http_Client</classname>.
  37. </para>
  38. <para>
  39. Le troisième paramètre optionnel est le nom du service Google Data. Par exemple,
  40. il peut être "cl" pour Google Calendar. Par défaut il s'agit de "xapi", ce qui
  41. correspond au service générique de Google Data.
  42. </para>
  43. <para>
  44. La quatrième paramètre optionnel est une instance de
  45. <classname>Zend_Http_Client</classname>. Vous pouvez alors configurer votre client à
  46. part (par exemple lui ajouter des options pour la gestion d'un Proxy). Si vous passez
  47. <constant>NULL</constant> à ce paramètre, alors un client
  48. <classname>Zend_Http_Client</classname> générique est crée.
  49. </para>
  50. <para>
  51. Le cinquième paramètre optionnel est le nom du client que les serveurs Google Data
  52. identifieront en interne. Par défaut il s'agit de "Zend-ZendFramework".
  53. </para>
  54. <para>
  55. Le sixième paramètre, toujours optionnel, est l'ID pour le challenge
  56. <trademark>CAPTCHA</trademark> retourné par le serveur. Ce paramètre n'est nécessaire
  57. que si vous avez reçu un challenge lors d'un processus d'authentification passé, et que
  58. vous le renvoyez pour résolution..
  59. </para>
  60. <para>
  61. Le septième paramètre optionnel représente la réponse de l'utilisateur au
  62. challenge <trademark>CAPTCHA</trademark> précédemment reçu. Il n'est donc nécessaire que
  63. si vous avez reçu un challenge <trademark>CAPTCHA</trademark> à résoudre.
  64. </para>
  65. <para>
  66. Ci dessous, un exemple d'une application <acronym>PHP</acronym> qui s'authentifie auprès du service
  67. Google Calendar et crée un objet client <classname>Zend_Gdata</classname> utilisant
  68. l'objet <classname>Zend_Http_Client</classname> fraîchement authentifié :
  69. </para>
  70. <programlisting language="php"><![CDATA[
  71. // identifiants de compte Google
  72. $email = 'johndoe@gmail.com';
  73. $passwd = 'xxxxxxxx';
  74. try {
  75. $client = Zend_Gdata_ClientLogin::getHttpClient($email, $passwd, 'cl');
  76. } catch (Zend_Gdata_App_CaptchaRequiredException $cre) {
  77. echo 'l'URL de l\'image CAPTCHA est: ' . $cre->getCaptchaUrl() . "\n";
  78. echo 'Token ID: ' . $cre->getCaptchaToken() . "\n";
  79. } catch (Zend_Gdata_App_AuthException $ae) {
  80. echo 'Problème d'authentification : ' . $ae->exception() . "\n";
  81. }
  82. $cal = new Zend_Gdata_Calendar($client);
  83. ]]></programlisting>
  84. </sect2>
  85. <sect2 id="zend.gdata.clientlogin.terminating">
  86. <title>Fermer un client HTTP authentifié par ClientLogin</title>
  87. <para>
  88. Il n'y a pas de méthode pour supprimer l'authentification effectuée via un
  89. ClientLogin, comme c'est le cas avec le système de jeton du procédé AuthSub. Les
  90. identifiants dans le ClientLogin étant un identifiant et un mot de passe de compte
  91. Google, ils ne peuvent être invalidés et sont utilisables de manière continue.
  92. </para>
  93. </sect2>
  94. </sect1>