GCAuth

1 Mi a GCAuth?
2 Kinek szól ez a leírás?
3 Kinek nem szól ez a leírás?
4 Miért jó?
5 A megvalósítás
6 Megjegyzések
7 Hol próbálható ki?


Mi a GCAuth?

Lényegében egy kényelmi szolgáltatás: a geocaching.hu felhasználói külső honlapon is azonosíthatják magukat a nickjükkel – akár két kattintással.


Kinek szól ez a leírás?

A geocaching.hu/turistautak.hu felhasználóinak többlet-szolgáltatást nyújtani szándékozó weblapok programozóinak.


Kinek nem szól ez a leírás?

Az imént említett szolgáltatásokat igénybe venni kívánó felhasználóknak.


Miért jó?

Nem kell kiadni a jelszót egy külső lapnak.
Nem kell újra végigcsinálni a regisztrációs procedúrát.
A meglevő (ismert) nicket a gazdája (és csak ő) használhatja – más nem nyúlhatja le azt előle.


A megvalósítás

1. A külső honlapról a GCAuth oldalra irányítjuk a felhasználót:
http://geocaching.hu/token.geo?next={url}&scope={secrets}
* next: az url, ahová hitelesítés után visszatér a böngésző;
* scope: az adatok, amelyeket a gc szervertől szertnénk megtudni, szóközzel elválasztva (pl. “username”)

(Az url és scope paraméterek természetesen urlencoded formában legyenek.)
Pl. http://geocaching.hu/token.geo?next=http%3A%2F%2Forokseg.net%2Falappont%2Findex.php&scope=username

2. A gc szerver válaszában a megjelölt URL-re irányítja a böngészőt, két új paraméterrel:
{url}?id={user_id}&token={token}
* id: a geocaching.hu-s numerikus felhasználói azonosító;
* token: véletlenszerűen generált karaktersorozat hexadecimális formátumban;

Pl. http://orokseg.net/alappont/index.php?id=17615&token=06aa8ca3b88b8fd00c1be319938275cf

3. A külső szerver meghívja a gc szervert (pl. PHP-ban file_get_contents() függvénnyel):
http://geocaching.hu/token.geo?site={host}&action={secrets}&id={user_id}&token={token}

* site: az előző (1.) kérés “next” paraméterének host része;
* action: az előző (1.) kérés “scope” paramétere;
* id: az előző (2.) válasz “id” paramétere;
* token: az előző (2.) válasz “token” paramétere;

Pl. http://geocaching.hu/token.geo?site=orokseg.net&action=username&id=17615&token=06aa8ca3b88b8fd00c1be319938275cf

4. A gc szerver válasza: a kért adat vagy hibaüzenet.
Siker esetén a kapott válaszból PHP unserialize() függvénnyel egy tömböt kapunk.
Kudarc esetén magyar nyelvű hibaüzenet érkezik.

Karakter kódolás mindkét esetben ISO-8859-2.


Megjegyzések

Ez a négy lépés csak a legelső használatnál szükséges. Ezután – a token visszavonásáig – elég a 3. és a 4. lépést végrehajtani.
Ha a külső szerveren van lehetőség session kezelésre, cookie-k használatára, akkor elegendő csak egyszer igénybe venni a GCAuth-ot. A 4. lépés sikere esetén küldhetünk egy egyedi cookie-t a böngészőnek, amellyel legközelebb azonosítani tudja magát – így nincs szükség további kérésekre a geocaching.hu felé.


Hol próbálható ki?

A példákban megjelenő orokseg.net honlapon már 2011. február óta “élesben” működik.

592 total views, 2 views today

Vélemény, hozzászólás?