Zend_Gdata_ClientLogin.xml 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.gdata.clientlogin">
  5. <title>Authentifizieren mit ClientLogin</title>
  6. <para>
  7. Der ClientLogin Mechanismus erlaubt es <acronym>PHP</acronym> Anwendungen zu schreiben die
  8. Authentifizierungs-zugriff zu Google Services benötigen, durch die Spezifikation von
  9. Benutzer Zugangsdaten im <acronym>HTTP</acronym> Client.
  10. </para>
  11. <para>
  12. Siehe <ulink
  13. url="http://code.google.com/apis/accounts/AuthForInstalledApps.html">http://code.google.com/apis/accounts/AuthForInstalledApps.html</ulink>
  14. für weitere Informationen über die Google Data ClientLogin Authentifizierung.
  15. </para>
  16. <para>
  17. Die Google Dokumentation sagt das der ClientLogin Mechanismus genau richtig für
  18. "installierte Anwendungen" ist und der AuthSub Mechanismus für "Web Anwendungen". Der
  19. Unterschied ist, das AuthSub Interaktion vom Benutzer benötigt, und ein Browser Interface
  20. das auf Weiterleitungs Anfragen reagieren kann. Die ClientLogin Lösung verwendet
  21. <acronym>PHP</acronym> Code um die Benutzer Zugangsdaten zu liefern; der Benutzer wird nicht
  22. benötigt um seine Zugangsdaten interaktiv einzugeben.
  23. </para>
  24. <para>
  25. Die Account Zugangsdaten die über den ClientLogin Mechanismum geliefert werden müssen
  26. gültige Zugangsdaten für Google Services sein, aber es müssen nicht die des Benutzers sein,
  27. der die <acronym>PHP</acronym> Anwendung verwendet.
  28. </para>
  29. <sect2 id="zend.gdata.clientlogin.login">
  30. <title>Erstellen eines ClientLogin autentifizierten Http Clienten</title>
  31. <para>
  32. Der Prozess der Erstellung eines autentifizierten <acronym>HTTP</acronym> Clients durch
  33. Verwendung des ClientLogin Mechanismus besteht darin die statische Funktion
  34. <methodname>Zend_Gdata_ClientLogin::getHttpClient()</methodname> aufzurufen und die
  35. Google Account Zugangsdaten als reinen Text zu übergeben. Der Rückgabewert dieser
  36. Funktion ist ein Objekt der Klasse <classname>Zend_Http_Client</classname>.
  37. </para>
  38. <para>
  39. Der optionale dritte Parameter ist der Name des Google Data Services. Zum Beispiel kann
  40. dieser 'cl' sein für Google Calendar. Der Standardwert ist "xapi", welcher von den
  41. Google Data Servern als generischer Service Name erkannt wird.
  42. </para>
  43. <para>
  44. Der optionale vierte Parameter ist eine Instanz von
  45. <classname>Zend_Http_Client</classname>. Das erlaubt das Setzen von Optionen an den
  46. Client, wie z.B. Proxy Server Einstellungen. Wenn für diesen Parameter
  47. <constant>NULL</constant> übergeben wird, wird ein generisches
  48. <classname>Zend_Http_Client</classname> Objekt erstellt.
  49. </para>
  50. <para>
  51. Der optionale fünfte Parameter ist ein kurzer String den Google Data Server verwenden um
  52. die Client Anwendung für logging Zwecke zu identifizieren. Standardmäßig ist dieser
  53. String "Zend-ZendFramework";
  54. </para>
  55. <para>
  56. Der optionale sechste Parameter ist eine String ID für eine
  57. <trademark>CAPTCHA</trademark> Challenge die vom Server angefordert wird. Er wird nur
  58. benötigt wenn eingeloggt werden soll nachdem eine <trademark>CAPTCHA</trademark>
  59. Challenge von einem vorhergehenden Login Versuch empfangen wurde.
  60. </para>
  61. <para>
  62. Der optionale siebente Parameter ist die Antwort des Benutzer's zu einer
  63. <trademark>CAPTCHA</trademark> Challenge die von dem Server angefordert wurde. Er wird
  64. nur benötigt wenn eingeloggt werden soll nachdem eine <trademark>CAPTCHA</trademark>
  65. Challenge von einem vorhergehenden Login Versuch empfangen wurde.
  66. </para>
  67. <para>
  68. Anbei ist ein Beispiel in <acronym>PHP</acronym> Code für eine Web Anwendung die
  69. Authentifizierung benötigt um das Google Calendar Service zu verwenden und ein
  70. <classname>Zend_Gdata</classname> Client Objekt zu erstellen das diesen
  71. authentifizierten <classname>Zend_Http_Client</classname> verwendet.
  72. </para>
  73. <programlisting language="php"><![CDATA[
  74. // Die Google Zugangdaten angeben
  75. $email = 'johndoe@gmail.com';
  76. $passwd = 'xxxxxxxx';
  77. try {
  78. $client = Zend_Gdata_ClientLogin::getHttpClient($email, $passwd, 'cl');
  79. } catch (Zend_Gdata_App_CaptchaRequiredException $cre) {
  80. echo 'URL des CAPTCHA Bildes: ' . $cre->getCaptchaUrl() . "\n";
  81. echo 'Token ID: ' . $cre->getCaptchaToken() . "\n";
  82. } catch (Zend_Gdata_App_AuthException $ae) {
  83. echo 'Authentifizierungs Problem: ' . $ae->exception() . "\n";
  84. }
  85. $cal = new Zend_Gdata_Calendar($client);
  86. ]]></programlisting>
  87. </sect2>
  88. <sect2 id="zend.gdata.clientlogin.terminating">
  89. <title>Den über ClientLogin authentifizierten Http Client beenden</title>
  90. <para>
  91. Es gibt keine Methode um ClientLogin Authentifizierungen zu verwerfen da es eine AuthSub
  92. token-basierte Lösung gibt. Die Zugangsdaten die in der ClientLogin Authentifizierung
  93. verwendet werden sind der Login und das Passwort zu einem Google Account, und deshalb
  94. können diese wiederholend in der Zukunft verwendet werden.
  95. </para>
  96. </sect2>
  97. </sect1>