| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.gdata.clientlogin">
- <title>Authentifizieren mit ClientLogin</title>
- <para>
- Der ClientLogin Mechanismus erlaubt es <acronym>PHP</acronym> Anwendungen zu schreiben die
- Authentifizierungs-zugriff zu Google Services benötigen, durch die Spezifikation von
- Benutzer Zugangsdaten im <acronym>HTTP</acronym> 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
- <acronym>PHP</acronym> 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 <acronym>PHP</acronym> Anwendung verwendet.
- </para>
- <sect2 id="zend.gdata.clientlogin.login">
- <title>Erstellen eines ClientLogin autentifizierten Http Clienten</title>
- <para>
- Der Prozess der Erstellung eines autentifizierten <acronym>HTTP</acronym> Clients durch
- Verwendung des ClientLogin Mechanismus besteht darin die statische Funktion
- <methodname>Zend_Gdata_ClientLogin::getHttpClient()</methodname> 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
- <constant>NULL</constant> ü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 <acronym>PHP</acronym> 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 language="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>
|