2012-04-12 6 views
0

Ich habe einen OAuth-Login über das Google Identity-Toolkit in PHP implementiert. Ich habe so weit wie eine authentifizierte Sitzung, die Userdata, ID, Foto usw., die mehr oder weniger in Ordnung zu arbeiten scheinen.Mit Google authentifizieren, ohne Weiterleitungen zu verwenden

Allerdings möchte ich in der Lage sein, mit Methoden, die nicht auf Umleitung im Browser des Benutzers angewiesen sind (denken an Remote-APIs für eine Anwendung) anmelden, aber etwas verloren, wie dies zu erreichen.

eine Anfrage Stellen Sie sich vor, die so etwas wie ist:

$details = new stdClass(); 

$details->secret  = $config->secret; 
$details->client_id  = $config->client_id; 
$details->app_name = 'my awesome oauth app'; 

$details->login    = array(); 
$details->login['email']  = 'some google account email @ example.com'; 
$details->login['password'] = '1234'; 

$token = $this->do_auth($details); 

if($token) { 
    // do stuff, setup cookies, insert token in session table etc 
} 

Ich benutze CodeIgniter. Gibt es Bibliotheken, die das können? Ich habe gesehen, dass Android-Apps ähnliche Dinge machen, indem sie benutzerdefinierte Anmeldeformulare verwenden, also denke ich, dass es in PHP erreichbar ist.

Antwort

2

Sie müssen umleiten, es ist ein wesentlicher Bestandteil der Funktionsweise von OAuth, es gibt keinen Weg um diese. Deshalb gibt es einen Redirect_uri-Parameter.

Sie müssen dies nur einmal tun: wenn sich der Benutzer anmeldet und Sie ein Zugriffs-Token anfordern. Danach verwenden Sie zum Beispiel einfach curl, um Ihre Daten anzufordern.

+0

yep, habe den ganzen Tag damit gespielt und das auch gemerkt :) es ist ein sehr cooles System, aber die Anforderung, irgendeine Browser-Sache zu haben, ist ziemlich nervig. Stellen Sie sich vor, wenn Sie die Leute in einer App registrieren lassen möchten ... viele Komplikationen. Für den Kontext, fand diesen Artikel, der sehr geholfen hat: http://softwareas.com/oauth-openid-youre-barking-up-the-wrong-tree-if-you-think-theyre-the-same-thing – dmp

Verwandte Themen