Open studiowizjo opened 5 months ago
Wygląda na to, że byt często odświeżasz tokeny. Pamiętaj, że gdy tworzysz nową parę - access token (ważny jest kolejne 12h) oraz refresh token (ważny kolejne 3 miesiące) - dotychczasowe stają się nieważne i nie możesz już ich użyć odpytując zasoby naszego API. Dokładniej opisaliśmy to w tej części naszego poradnika.
Jedynie testowo odswiezalem z taka czestotliwoscia i wg mnie te 60s jest tutaj kluczowe poniewaz w poradniku jest mowa:
Token taki jest ważny przez 3 miesiące, po pierwszym odświeżeniu możesz z niego korzystać jeszcze przez 60 sekund.
Dodatkowo mozna bylo w czasie 60s wielokrotnie z sukcesem odswiezyc, ale po uplywie tego czasu juz nie, tak wiec to nie wydaje sie przyczyna.
Poza tym skoro w jednym endpoincie odswiezam tak naprawde obydwa tokeny, to nie ma chyba znaczenia roznica czasu ich waznosci i tak czy inaczej musze odswiezac co tyle ile waznosci ma najkrotszy okres waznosci tokena, a wiec ciut krocej niz 12h? Prosba o opisanie jeszcze wlasciwego flow, czy dobrze to rozumiem.
Tak, powinieneś odświeżać token co 12h - dwa razy na dobę. Poza tym refresh token zawsze jest ważny przez 3 miesiące i po pierwszym odświeżeniu możesz z niego korzystać jeszcze przez 60 sekund. Te 60 sekund dodatkowego buforu wprowadziliśmy na wypadek, gdyby występowały problemy np. po stronie Twojej aplikacji, czy też nieoczekiwane problemy po naszej stronie.
Jesli dobrze rozumiem, to po odswiezeniu powinienem we wszystkich kolejnych zapytaniach moc korzystac zarowno z nowego access_token
a jak i refresh_token
a i stare nie sa juz istotne, ale w razie czego refresh_token
jest wazny jeszcze przez 60s, tak wiec mam 1 access_token
i 2 mozliwe refresh_token
y do wykorzystania?
Niestety nie sprawdza sie to i tak jak wspominalem, po odswiezeniu otrzymujac nowa pare i probujac skorzystac z niej, po 60s jest ona niewazna i pojawia sie komunikat Invalid refresh token
. Dlaczego, skoro dopiero co zostal wygenerowany i powinien byc wazny przez 3 miesiace?
Jeśli otrzymałeś nowy powinieneś skorzystać z nowego, a widocznie tak nie jest i korzystasz z poprzedniego mimo, że już wcześniej go użyłeś. Prześlij proszę pełen request i response przez nasz formularz kontaktowy. W zgłoszeniu dopisz GitHub #9045, sprawdzę to.
Wyslane w 3 wiadomosciach odpowiednio oznaczonych, poniewaz limit w formularzu nie pozwalal na wyslanie wszystkiego naraz.
Przypominam sie w temacie. Czy juz cos wiadomo?
Niestety nie dotarło do mnie to zgłoszenie. Może Pan się w nim przypomnieć z prośbą o przekazanie do zespołu API?
Wyslane.
Przekazano mi Twoje dane. Na ten moment widzę, że przesłałeś mi inny przypadek błędu niż "Invalid refresh token" w podanym przypadku otrzymujesz błąd "Full authentication is required to access this resource" tu problem jest raczej z przekazywaniem przez Ciebie tokena. Sprawdzę jeszcze w logach konkretny przypadek z błędem "Invalid refresh token" i dam Ci znać jeśli uda mi się to namierzyć. Rozumiem, że operacje są na tym samym userze?
Tak, na tym samym
Niestety nie znalazłam przypadku z "invalid refresh token". Jeśli możesz podeślij w tej samej korespondencji co poprzednio przykład, co po kolei wysyłasz jak dostajesz wspomniany błąd. Jeśli chodzi o ten przypadek co podesłałeś przez formularz to zwróć uwagę, że w nagłówku Authorization przesyłasz Basic zamiast Bearer.
W tym wątku nie pojawiła się żadna nowa odpowiedź w ciągu 7 dni, dlatego automatycznie oznaczamy go jako przeterminowany. Jeśli w ciągu kolejnych 7 dni nie pojawi się żadna odpowiedź, wątek zostanie zamknięty. Dziękujemy za zaangażowanie w dyskusję i zachęcamy Cię do wypełnienia ankiety dotyczącej naszego wsparcia na forum.
There was no new reply in this thread within 7 days, therefore, we automatically marked it as expired. If no response is received within the next 7 days, this thread will be closed. Thank you for engaging in the discussion. We encourage you to complete our forum support survey.
Autoryzując się, korzystając z endpointu:
https://allegro.pl/auth/oauth/device?client_id=XXX
otrzymujemy zwrotnie m.in:Zaraz po zautoryzowaniu wykonujemy odswiezenie tokena i zwrotnie otrzymujemy nowy "access_token" oraz "refresh_token". Zapisujemy te dane w miejsce poprzednich i wykonując kolejne zapytania korzystamy już z tych nowych danych.
Problem w tym, że po upływie ok. 60s dane te przestają byc wazne i wykonujac zapytanie otrzymujemy blad:
Invalid refresh token
. Co jest przyczyna, skoro token zostal odswiezony?Przed uplywem 60s mozemy np. kilkukrotnie wykonac odswiezenie kazdorazwo otrzymujac nowe dane i wszystko dziala prawidlowo. Czy po odswiezeniu waznosc nie powinna byc na 3 miesiace?