Voglio utilizzare l'autenticazione basata su token in cui l'utente effettua il login con una combinazione nome utente / password. Il server dovrebbe assicurarsi che il nome utente e la password corrispondano e quindi restituire un token che sarebbe utilizzato dal client per effettuare successive chiamate API. Questi token scadranno dopo un certo periodo di tempo (4 ore è quello che sto pensando), dopo di che l'utente dovrebbe accedere nuovamente.
Il modo in cui voglio generare token è questo: hash SHA256 di 3 stringhe generate casualmente (caratteri - [0-9, a-z, A-Z]), concatenati. Conserverei questo token in una tabella di database insieme al nome utente e al tempo di accesso.
Quando viene effettuata una richiesta API con questo token, sarei in grado di ottenere l'utente dal token.
Voglio proteggermi dagli attacchi di forza bruta.
Voglio implementare tutto questo in PHP. Questo approccio è abbastanza buono? Se no, perché? E quale sarebbe un modo migliore per farlo? Dovrebbe esserci un modo per ottenere l'utente solo dal token (senza cercare da un database)? Se sì, perché?
Sono un principiante per quanto riguarda la sicurezza, quindi le spiegazioni dettagliate sarebbero molto apprezzate.