tl; dr: Nel tuo caso particolare, non c'è motivo per non usare l'autenticazione basata su token. Il tuo provider OAuth probabilmente ti fornirà comunque le JWT. Devi assicurarti che i tuoi token siano adeguatamente protetti (usa TLS, scegli una durata appropriata).
È un po 'un mito che ci sia qualcosa di intrinsecamente sbagliato nelle sessioni per il mantenimento dello stato. È vero che HTTP è senza stato e REST (poiché rispecchia da vicino il protocollo sottostante) funziona meglio quando è anche senza stato.
Un'applicazione interamente apolidi, tuttavia, è estremamente limitata. Per qualsiasi cosa non banale, è necessario memorizzare qualche stato, da qualche parte. Puoi fare affidamento sul client per memorizzare questo stato (sotto forma di cookie, o qualche altra memoria locale), o chiedere al server di memorizzarlo in qualche modo. Le due principali considerazioni che devi fare sono:
- Quanto stato hai bisogno di memorizzare
- Quanto sono sensibili i dati
Se si dispone di molto stato dell'applicazione, la memorizzazione nel client passandola ad ogni richiesta aumenterà la latenza per l'applicazione e, se i dati sono molto sensibili, è necessario assicurarsi di aver fornito una protezione adeguata (crittografia ) o non passare affatto lo stato al client.
Nel caso di OAuth2, i token restituiti al client sono effettivamente lo stato (che rappresenta l'autenticazione). Questi possono essere sotto forma di JWT (dove le informazioni sono contenute nel token stesso) o qualche forma di token di riferimento, che il server può utilizzare per cercare le informazioni pertinenti.