0
Ile czasu działa token sesyjny? Wygasł mi w połowie pracy...
Cześć!
Mam takie pytanie bo dzisiaj coś mi się dziwnego przydarzyło. Wygenerowałam token sesyjny rano żeby poukladać faktury w KSeF i po jakich 2 godzinach system mnie wyrzucił i musiałam logować się od nowa.
Czy to normalne ze token tak szybko wygasa? Bo jak mam dużo faktur do wysłania od kilku klientów to tracę mnóstwo czasu na ciągłe logowanie... Może coś źle robię?
Dzięki za pomoc!
3 odpowiedzi
0
IzabelaBaran3 dni temu
Token sesyjny w KSeF ma domyślnie **20 minut** czasu życia, więc 2 godziny to raczej nie token sesyjny tlko coś innego.
Sprawdź czy czsem nie używasz tokena autoryzacyjnego - ten ma 24h. Albo może masz jakieś odświeżanie tokena w aplikacji/integracji której używasz?
```
SessionToken: 20min
AuthorisationChallengeToken: 10min
InitSessionToken: 3min
```
Jeśli rzeczywiście pracujesz przez API i masz dużo faktur, to najlepiej zrób sobie automatyczne odświeżanie tokena co 15-18 minut żeby nie czekać aż wygaśnie. A jak używasz jakiejś zewnętrznej aplikacji to może ona sama to robi w tle?
Btw, które środowisko - demo czy prod? Bo na demo czasem dzieją się dziwne rzeczy z tokenami.
0
Wdrozeniowiec3 dni temu
Izabela ma rację z czasami życia tokenów, ale może tutaj problem leży gdzie indziej.
Z mojego doświadczenia przy projektowaniu integracji z KSeF - 2 godziny to brzmi jak timeout na poziomie aplikacji albo reverse proxy, nie samego tokena. Sprawdźź czy przypadkiem nie masz jakiegoś load balancera czy WAF-a który ma ustawiny timeout sesji HTTP na 2h.
Druga możliwość to że używasz jakiejś aplikacji która ma własne mechanizmy sesji i to ona cię wylogowuje, a nie KSeF. Wiele systemów księgowych ma domyślnie ustawione automatyczne wylogowanie po okresie nieaktywności.
Jeśli rzeczywiście pracujesz bezpośrednio z API (a nie przez aplikację), to polecam zaimplementować sobie automatyczne odświeżanie tokena sesyjnego. My w naszej integracji mamy job który co 15 minut sprawdza czy token niedługo wygaśnie i jeśli tak, to generuje nowy. Dzięki temu proces wysyłania faktur nigdy się nie przerywa.
A przy okazji - jeśli masz regularne duże wolumeny faktur to pomyśl o asynchronicznym przetwarzaniu. Zamiast siedzieć przy kmoputerze i wysyłać po kloei, lepiej wrzucić wszystko do kolejki i pozwolić systemowi robić to w tle. Szczególnie że KSeF ma limity throughput i czasem trzeba poczekać między requestami.
0
JustynaZawadzka3 dni temu
@IzabelaBaran i @Wdrozeniowiec mają rację - 2h to nie token sesyjny. Brzmi jak timeout aplikacji.
Ale żeby doprecyzować - sprawdź **jaki dokładnie token** używasz:
```
GET /common/Status/Session
```
W odpowiedzi będziesz miała `expirationDateTime` - to ci powie czy to rzeczywiście token sesyjny czy coś innego.
Z mojego doświadczenia prrzy wdrożeniach - czesto aplikacje księgowe mają własne **session management** i to one wylogowują po x czasie nieaktywności, nie KSeF. Szczególnie programy webowe mają domyślnie 2h timeout.
*
*Quick fix:** Jak wysyłasz dużo faktur, to zrób sobie prosty skrypt który co 15 min robi:
```bash
curl -H "SessionToken: ${TOKEN}" https://ksef.mf.gov.pl/api/online/Session/Status
```
To odświeży sesję i nie zostaniesz wyrzucona w połowie pracy.
A jakiego programu używasz do KSeF? Bo może da się tam ustawić dłuższy timeout sesji lub auto-refresh tokenów.
Twoja odpowiedź
Zaloguj się, aby odpowiedzieć w tej dyskusji.