Przeczytałem sporo artykułów z różnej maści grafami i prezentacjami, ale nie mogę sobie jakoś poukładać jak działa refresh token.
A w zasadzie jak on ma zminimalizować ryzyko nieautoryzowanego dostępu.
Z tego co zrozumiał z przeczytanych artykułów to:
- Klient dostaje Access Token z krótką datą ważności.
- Klient podczas żądania dostępu do strzeżonego zasobu po wygaśnięciu daty ważności tokenu dostaje status 401.
- Przy kolejnym żądaniu niby klient otrzymuje nowy Refresh Token z dłuższą datą ważności.
Ale niby, że jak? Wystawiany jest dodatkowy endpoint w API, który weryfikuje czy klient posiada Access Token i generuje nowy Refresh Token, który posiada te same uprawnienia do zasobów co Access Token? Przecież to bez sensu. Tak samo może ktoś przechwycić Refresh Token jak i Access Token. Nie lepiej po prostu dawać dłuższy czas wygaśnięcia dla Access Token?
Później klient uwierzytelnia się za pomocą Refresh Token? Po co w zasadzie mu wtedy pierwotny Access Token?
Ktoś może mi to jakoś łopatologicznie wyjaśnić?