Nel mio sistema abbiamo account utente e dispositivi utente. Regole:
- Un utente può avere un solo account utente.
- Ogni utente può avere molti dispositivi.
- Un dispositivo può essere associato a un solo account utente.
Durante l'installazione iniziale, quando si aggiunge un nuovo dispositivo o dopo un "ripristino totale", l'utente deve fornire il login e la password al proprio account per associare questo particolare dispositivo all'account. Successivamente, il dispositivo invia un token univoco ad ogni richiesta e viene riconosciuto da tale token.
Quindi la situazione normale è che il dispositivo A è legato all'utente A e il tempo continua. Questa domanda riguarda la situazione in seguito, quando viene effettuata una richiesta dal Dispositivo A utilizzando le credenziali per l'Utente B.
Cosa dovrebbe accadere in questa situazione? Come deve rispondere l'API / server quando rileva che un dispositivo già associato a un account utente sta tentando di collegarsi nuovamente a un altro account?
Usiamo Dropbox come esempio. Che cosa accadrebbe quando qualcuno disinstalla il client Dropbox su uno dei loro computer precedentemente utilizzato con l'account A, quindi lo reinstalla con le credenziali per l'account B? Il client locale puntava a una cartella Dropbox contenente alcuni file, ma cercava di sincronizzarlo con un account con un set di file completamente diverso. Si noti che non ho testato una situazione del genere. Non sono disposto a farlo e non mi interessa sapere come Dropbox gestisce questo; Sto solo usando questo come esempio per aiutare a descrivere la mia situazione.
Quello che ho scoperto finora:
-
Tratta questa situazione come una situazione normale e ricollega automaticamente il dispositivo all'account come richiesto. Ma questo non farebbe casino nel database in termini di ciò che l'utente vede o ha accesso a (statistiche, dati, cronologia, ecc.)?
-
Considera questo come una situazione di errore. Supponiamo che per riassociare un dispositivo a un altro account, prima di tutto non ci si deve separare dal suo account precedente. Se l'utente non può accedere al proprio "vecchio" account (precedente) a causa della password persa, ecc., Deve utilizzare il modulo per la reimpostazione della password o contattare l'assistenza.
-
Qualcosa di diverso . Non menzionato sopra.
Dopo aver fatto un po 'di riflessione e un po' di ricerca sono abbastanza convinto che l'opzione due sia la soluzione migliore per me, ma mi piacerebbe sapere che qualcuno prevede problemi importanti con questo approccio. C'è qualche ragione per cui non dovrei seguire l'opzione 2?
Modifica : questo sistema si occupa di dispositivi non computerizzati; Dropbox è solo un esempio. Nel mio scenario il 95% dei dispositivi viene sempre utilizzato dallo stesso utente e non è condiviso tra gli altri. La mia ipotesi è che questa situazione possa verificarsi solo a seguito di un errore o di azioni intenzionali, ma non supportate (hacking, controllo cosa succederà se , ecc.).