Spis treści
Tokeny
Tokeny są alternatywną metodą logowania się do zasobów Grona, nie wymagającą przechowywania zestawu ciasteczek. Po pozyskaniu tokena, wysyłamy go razem z każdym requestem, jako kolejny parametr w POST lub GET. Mają one pierwszeństwo nad ciasteczkami sesji - jeśli w requeście jest zarówno sesja jak i tokeny, sesja nie jest brana pod uwagę.
| uzyskanie tokena | |
| url | api.grono.net/pub/token/issue/ |
| metoda | GET lub POST |
| parametry | format=FORMAT |
| dane | jak przy logowaniu się, czyli login, password, client, cliver,lang oraz domain - zobacz niżej |
| zwraca | 200 OK + token 400 Bad Request 403 Forbidden |
Jeśli podamy parametr format, odpowiedź zawiera klucz "token", którego wartością jest nowy token, oraz klucz "handle", który jest identyfikatorem użytkownika do dalszych zapytań, tak jak w logowaniu się. W przeciwnym wypadku, obie te wartości oddzielone są dwukropkiem, czyli treść ma postać token:handle.
Domeny
Tokeny mają ograniczony zakres zasobów na które obowiązują. Określa to wybrana domena (parametr domain). Token nie nadaje się do używania zasobów z innej domeny, niż ta na którą został wydany. Nie istnieje możliwość przeniesienia go do innej domeny, ani dodania mu kolejnych.
| nazwa | zasoby | ważność |
| gallery | Galerie, Avatar, NajnowszeFotki | 10 minut |
| contacts | Znajomi | 10 minut |
| messages | Wiadomości, Kartki | 10 minut |
| forum | Forum | 10 minut |
| profile | Profil, Blimp | 30 minut |
Ważność i odświeżanie
Tokeny mają ograniczony czas ważności, wykazany w tabelce wyżej. Aplikacja musi umieć odnawiać tokeny. Użycie w zapytaniu nieistniejącego lub nieważnego tokena spowoduje wygenerowanie statusu 403, tak jakby użytkownik się nie zalogował. Ważność tokenu liczona jest od momentu wystawienia.
Ilość tokenów
Istnieje ograniczenie na ilość aktywnych tokenów w danym momencie wydanych jednemu użytkownikowi. Na chwilę obecną wynosi ono 10. Jeśli aplikacja potrzebuje więcej tokenów, musi poczekać aż wygasną, lub unieważnić token.
Unieważnianie
| unieważnienie tokena | |
| url | api.grono.net/pub/token/revoke/ |
| metoda | GET lub POST |
| dane | token=TOKEN |
| zwraca | 200 OK + token 400 Bad Request 404 Not Found |
Unieważnienie tokena powoduje, że nie nadaje się już do autoryzowania requestów, niezależnie od tego kto się nim posługuje. W połączeniu z faktem, że tokeny są ważniejsze od sesji, daje to pewien stopień zabezpieczenia przed kradzieżą tokenów. Uwaga: aby unieważnić token, nie trzeba być zalogowanym, ani posiadać ważnego tokena.
