Non utilizzare l'autenticazione di base, si tratta di un vecchio schema di autenticazione che non fornisce vantaggi sulla gestione delle sessioni basata su cookie o token. Quando si utilizzano le credenziali di autenticazione di base come identificativo di sessione, è necessario quindi inviarlo in ogni richiesta. Questo ha due grossi aspetti negativi:
-
Le credenziali sono memorizzate nella cache del browser in testo semplice, che potrebbe essere oggetto di abusi in alcuni scenari
-
La sessione non può essere interrotta poiché è collegata alle credenziali dell'utente e le credenziali non hanno alcun concetto di scadenza come JWT, cookie o altro tipo di token (Nota: quando si dice expiracy non mi riferisco alla scadenza della password come in "È necessario modificare la password ogni 3 mesi" ma le credenziali come schema di autenticazione)
Anche se si tenta di utilizzare l'autenticazione di base per inviare un cookie di sessione, i browser continueranno a inviare le credenziali nell'intestazione dell'autorizzazione.
Se usi le richieste AJAX, il mio consiglio sarebbe di restare con l'autenticazione basata su cookie o migrare a JWT. Nota che se l'API viene chiamata da un altro hostname (ad esempio www.esempio.com chiama un'API in api.example.com), il corrispondente Le intestazioni CORS per consentire le credenziali devono essere impostate correttamente