Cześć,
Piszę aplikację w blazor server (dotnet 6) i zmagam się z uwierzytelnianiem użytkowników.
Obecnie mam to napisane w następujący sposób:
- Posiadam access token i refresh token, access token jest ważny 1 minutę, a refresh token jest ważny 14 dni.
- Gdy access token wygaśnie, aplikacja sprawdza, czy jest on ważny w bazie danych, a jeśli tak, odświeża go i generuje nowe tokeny.
- Oba tokeny są przechowywane w localstorage i tutaj moje pytanie, czy robię dobrze?
W blazor widziałem większość implementacji wykorzystujących localstorage, ale słyszałem różne głosy (aby trzymać je w plikach cookie lub pamięci (?)). Jaki jest najlepszy sposób, aby tokeny nie były podatne na ataki csrf, xss itp.? Powinienem trzymać oba tokeny w jednym miejscu, czy jakoś je rozdzielić?