„GCAuth” változatai közötti eltérés

A Turistautak.hu wikiből
(Mi ez?)
(A megvalósítás)
18. sor: 18. sor:
 
(Az url és scope paraméterek természetesen urlencoded formában legyenek.)<br/>
 
(Az url és scope paraméterek természetesen urlencoded formában legyenek.)<br/>
 
Pl. http://geocaching.hu/token.geo?next=http%3A%2F%2Forokseg.net%2Falappont%2Findex.php&scope=username
 
Pl. http://geocaching.hu/token.geo?next=http%3A%2F%2Forokseg.net%2Falappont%2Findex.php&scope=username
 
+
<br/>
 
'''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:<br/>
 
'''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:<br/>
 
{url}?id={user_id}&token={token}
 
{url}?id={user_id}&token={token}
24. sor: 24. sor:
 
* token: véletlenszerűen generált karaktersorozat hexadecimális formátumban; <br/>
 
* token: véletlenszerűen generált karaktersorozat hexadecimális formátumban; <br/>
 
Pl. http://orokseg.net/alappont/index.php?id=17615&token=06aa8ca3b88b8fd00c1be319938275cf
 
Pl. http://orokseg.net/alappont/index.php?id=17615&token=06aa8ca3b88b8fd00c1be319938275cf
 
+
<br/>
 
'''3.''' A külső szerver meghívja a gc szervert (pl. PHP-ban file_get_contents() függvénnyel):<br/>
 
'''3.''' A külső szerver meghívja a gc szervert (pl. PHP-ban file_get_contents() függvénnyel):<br/>
 
http://geocaching.hu/token.geo?site={host}&action={secrets}&id={user_id}&token={token}
 
http://geocaching.hu/token.geo?site={host}&action={secrets}&id={user_id}&token={token}
32. sor: 32. sor:
 
* token: az előző (2.) válasz "token" 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
 
Pl. http://geocaching.hu/token.geo?site=orokseg.net&action=username&id=17615&token=06aa8ca3b88b8fd00c1be319938275cf
 
+
<br/>
 
'''4.''' A gc szerver válasza (a kért adat vagy hibaüzenet).<br/>
 
'''4.''' A gc szerver válasza (a kért adat vagy hibaüzenet).<br/>
 
* Siker esetén a kapott válaszból PHP unserialize() függvénnyel egy tömböt kapunk.
 
* Siker esetén a kapott válaszból PHP unserialize() függvénnyel egy tömböt kapunk.

A lap 2011. július 16., 02:35-kori változata

Tartalomjegyzék

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.

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álsztva (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.

Hol használható?

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