| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 15156 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.gdata.clientlogin">
- <title>Authentifizieren mit ClientLogin</title>
- <para>
- Der ClientLogin Mechanismus erlaubt es PHP Anwendungen zu schreiben die Authentifizierungs-zugriff
- zu Google Services benötigen, durch die Spezifikation von Benutzer Zugangsdaten im Http Client.
- </para>
- <para>
- Siehe
- <ulink url="http://code.google.com/apis/accounts/AuthForInstalledApps.html"> http://code.google.com/apis/accounts/AuthForInstalledApps.html</ulink>
- für weitere Informationen über die Google Data ClientLogin Authentifizierung.
- </para>
- <para>
- Die Google Dokumentation sagt das der ClientLogin Mechanismus genau richtig für "installierte Anwendungen"
- ist und der AuthSub Mechanismus für "Web Anwendungen". Der Unterschied ist, das AuthSub Interaktion vom
- Benutzer benötigt, und ein Browser Interface das auf Weiterleitungs Anfragen reagieren kann. Die ClientLogin
- Lösung verwendet PHP Code um die Benutzer Zugangsdaten zu liefern; der Benutzer wird nicht benötigt um seine
- Zugangsdaten interaktiv einzugeben.
- </para>
- <para>
- Die Account Zugangsdaten die über den ClientLogin Mechanismum geliefert werden müssen gültige Zugangsdaten
- für Google Services sein, aber es müssen nicht die des Benutzers sein, der die PHP Anwendung verwendet.
- </para>
- <sect2 id="zend.gdata.clientlogin.login">
- <title>Erstellen eines ClientLogin autentifizierten Http Clienten</title>
- <para>
- Der Prozess der Erstellung eines autentifizierten Http Clients durch Verwendung des ClientLogin
- Mechanismus besteht darin die statische Funktion <classname>Zend_Gdata_ClientLogin::getHttpClient()</classname>
- aufzurufen und die Google Account Zugangsdaten als reinen Text zu übergeben. Der Rückgabewert dieser
- Funktion ist ein Objekt der Klasse <classname>Zend_Http_Client</classname>.
- </para>
- <para>
- Der optionale dritte Parameter ist der Name des Google Data Services. Zum Beispiel kann dieser 'cl'
- sein für Google Calendar. Der Standardwert ist "xapi", welcher von den Google Data Servern als
- generischer Service Name erkannt wird.
- </para>
- <para>
- Der optionale vierte Parameter ist eine Instanz von <classname>Zend_Http_Client</classname>. Das erlaubt das Setzen von Optionen
- an den Client, wie z.B. Proxy Server Einstellungen. Wenn für diesen Parameter <code>null</code> übergeben
- wird, wird ein generisches <classname>Zend_Http_Client</classname> Objekt erstellt.
- </para>
- <para>
- Der optionale fünfte Parameter ist ein kurzer String den Google Data Server verwenden um die Client
- Anwendung für logging Zwecke zu identifizieren. Standardmäßig ist dieser String "Zend-ZendFramework";
- </para>
- <para>
- Der optionale sechste Parameter ist eine String ID für eine <trademark>CAPTCHA</trademark> Challenge
- die vom Server angefordert wird. Er wird nur benötigt wenn eingeloggt werden soll nachdem eine
- <trademark>CAPTCHA</trademark> Challenge von einem vorhergehenden Login Versuch empfangen wurde.
- </para>
- <para>
- Der optionale siebente Parameter ist die Antwort des Benutzer's zu einer
- <trademark>CAPTCHA</trademark> Challenge die von dem Server angefordert wurde. Er wird nur benötigt
- wenn eingeloggt werden soll nachdem eine <trademark>CAPTCHA</trademark> Challenge von einem
- vorhergehenden Login Versuch empfangen wurde.
- </para>
- <para>
- Anbei ist ein Beispiel in PHP Code für eine Web Anwendung die Authentifizierung benötigt um das
- Google Calendar Service zu verwenden und ein <classname>Zend_Gdata</classname> Client Objekt zu erstellen das diesen
- authentifizierten <classname>Zend_Http_Client</classname> verwendet.
- </para>
- <programlisting role="php"><![CDATA[
- // Die Google Zugangdaten angeben
- $email = 'johndoe@gmail.com';
- $passwd = 'xxxxxxxx';
- try {
- $client = Zend_Gdata_ClientLogin::getHttpClient($email, $passwd, 'cl');
- } catch (Zend_Gdata_App_CaptchaRequiredException $cre) {
- echo 'URL des CAPTCHA Bildes: ' . $cre->getCaptchaUrl() . "\n";
- echo 'Token ID: ' . $cre->getCaptchaToken() . "\n";
- } catch (Zend_Gdata_App_AuthException $ae) {
- echo 'Authentifizierungs Problem: ' . $ae->exception() . "\n";
- }
- $cal = new Zend_Gdata_Calendar($client);
- ]]></programlisting>
- </sect2>
- <sect2 id="zend.gdata.clientlogin.terminating">
- <title>Den über ClientLogin authentifizierten Http Client beenden</title>
- <para>
- Es gibt keine Methode um ClientLogin Authentifizierungen zu verwerfen da es eine AuthSub token-basierte
- Lösung gibt. Die Zugangsdaten die in der ClientLogin Authentifizierung verwendet werden sind der
- Login und das Passwort zu einem Google Account, und deshalb können diese wiederholend in der Zukunft
- verwendet werden.
- </para>
- </sect2>
- </sect1>
|