Quindi sto creando la mia prima applicazione su più larga scala (su larga scala intendo qualcosa che mi vedo pubblicare nell'app store) e non sono sicuro di come gestire l'autorizzazione dell'utente. Il client sarà costituito da un'applicazione per android e iphone e farà richieste HTTP su un server.
I miei dati sono memorizzati in un server PostgreSQL e ho già implementato in modo che un utente possa accedere, ma in questo momento l'accesso non significa praticamente nulla. Quando si esegue una query nel database, non viene effettuato alcun controllo per assicurarsi che i dati richiesti o che si desidera modificare siano tuoi.
Stavo pensando che quando un utente effettua il login riceve un token. Ogni volta che una richiesta viene effettuata su un ID utente, l'host che richiede questi dati dovrebbe anche fornire quel token ID.
Le query sono fatte con chiamate di resto, e di solito sono nella forma [id di utente, nuovi dati 1, nuovi dati 2, nuovi dati 3], e questi nuovi dati saranno inseriti in una tabella, e la nuova riga sarà avere una relazione con l'id del cliente.
I dati che immagazzino non sono in alcun modo sensibili. La maggior parte delle richieste sarà un utente che desidera aggiungere una riga a una tabella nel mio database. La parte più sensibile delle informazioni sarebbe probabilmente l'email di un utente, quindi questo sistema di autenticazione sarebbe presente solo per garantire che nessuno inserisca troll-data su un client diverso da loro.
Un altro punto che non sono sicuro di come gestire è cosa fare quando il token scade. Non posso richiedere all'utente di accedere ogni poche ore, il token dovrebbe essere rinnovato automaticamente. È normale memorizzare id / pass sul client e fare la richiesta automaticamente?