InterTech

intertech.at - das Internet Technologie Magazin

OpenID Client mit einer gepimpten Simple OpenID PHP Klasse

Seite 1 2 3 4 >>

Bei immer mehr Projekten entsteht der Wunsch, die Benutzerauthentifizierung nicht nur per User/Passwort-Kombination durchzuführen, sondern das für den Benutzer bequeme OpenID zu implementieren. Mit der Simple OpenID PHP Class läßt sich eine Integration einer Authentifizierung mittels OpenID leicht realisieren. Eine Frischzellenkur der Klasse mit Yardis beseitigt ein Problem mit zu restriktiven OpenID Identity Providern wie Yahoo…

Aber vom Anfang an… im vorliegen Fall sollte der Login von gametools.at auf OpenID erweitert werden. Als Programmierer geht man dann auf die Suche nach einer entsprechenden Klassenbibliothek, und wird dem PHP OpenID Library zwar schnell fündig, aber obwohl die Library alle Wünsche erfüllt, ist sie doch nicht so klein und simple man es gerne für – den einen eigentlich trivialen -Loginprozeß gerne hätte… also weitersuchen, und bei PHP Classes wird man dann fündig werden – die Simple OpenID PHP Class ist klein und einfach, und wie Simple sie wirklich ist schauen wir uns hier an…

Die erste leichte Verwirrung – es sind 3 unterschiedliche Versionen im Archiv der Klasse – wurde schnell überwunden, und ein include 'class.openid.v3.php'; inkludierte die neueste Variante der Klasse in den Sourcecode des OpenID Clients.

Ein anschauliches Beispiel bei der Simple OpenID Klasse half zur schnellen Entwicklung des Clients, und kurze Zeit später war eine erfolgreiche Authentifizierung via OpenID bereits möglich.

Request an die OpenID URL senden:
include 'class.openid.v3.php';
$openid = new SimpleOpenID;
$openid->SetIdentity($_POST['openid_url']);
$openid->SetTrustRoot('http://' . $_SERVER["HTTP_HOST"]);
$openid->SetRequiredFields(array('email'));
$openid->SetOptionalFields(array('nickname'));
if ($openid->GetOpenIDServer())
{
$openid->SetApprovedURL('http://' . $_SERVER["HTTP_HOST"] . $_SERVER["PHP_SELF"]); $openid->Redirect();
}

Leider happerte es noch bei einer Kleinigkeit – die Authentifzierung lief zwar erfolgreich, aber die für die weitere Verarbeitung notwendigen Daten wie Emailadresse oder Nickname konnten nicht extrahiert werden, und auch nach mehrmaligen durchsuchen der Klasse fand sich kein Hinweis drauf wie man an diese Daten kommen könnte. Erste Annahmen, daß es an unserem eigenen OpenID Identitiy Provider lag, konnten wir durch schnelles Debuggen widerlegen…

Be Sociable, Share!

Seite 1 2 3 4 >>

Tags: , , • Kategorie: How-To, Programmierung

Be Sociable, Share!

Keine Kommentare möglich.