Autentica l'app mobile nativa utilizzando un'API REST


16

Presto inizierò un nuovo progetto, che si rivolge alle applicazioni mobili per tutte le principali piattaforme mobili (iOS, Android, Windows). Sarà un'architettura client-server.

L'app è sia informativa che transazionale. Per la parte transazionale, è necessario disporre di un account e accedere prima di poter effettuare una transazione. Sono nuovo nello sviluppo mobile, quindi non so come viene eseguita la parte di autenticazione su queste piattaforme. I client comunicheranno con il server tramite un'API REST. Utilizzerà HTTPS ofcourse.

Non ho ancora deciso se voglio che l'utente acceda quando aprono l'app o solo quando eseguono una transazione.

Ho ricevuto le seguenti domande:

1) Come l'applicazione Facebook, inserisci le tue credenziali solo quando apri l'applicazione per la prima volta. Successivamente, accedi automaticamente ogni volta che apri l'app. Come si ottiene questo? Semplicemente crittografando e archiviando le credenziali sul dispositivo e inviandole ogni volta che si avvia l'app?

2) Devo autenticare l'utente per ogni richiesta (transazionale) fatta all'API REST o utilizzare un approccio basato su token?

Sentiti libero di suggerire altri modi per l'autenticazione.

Grazie!

Risposte:


14

Passa nome utente / password al metodo di accesso dell'API RESTful e restituisce il token di accesso. Quel token di accesso è solo una stringa univoca (per il sistema).

Il dispositivo memorizza (persiste) quel token di accesso. Ogni volta che invii una richiesta RESTful al server inserisci quel token di accesso nell'intestazione della richiesta HTTP. Il server trova l'utente tramite token di accesso e, in caso di successo, soddisfa la richiesta.

nome utente / password non devono essere memorizzati sul dispositivo.


È possibile per terze parti (hacker, ecc.) Ottenere il token di accesso?
Supercell

Questo è ovviamente possibile. Soprattutto se non si utilizza HTTPS. La maggior parte dei client di posta elettronica online ti chiede di accedere nuovamente di volta in volta. Ad esempio, il token ha un tempo di scadenza impostato su due settimane. Quindi una volta ogni due settimane dovrai riconnetterti.
c-smile,

Come verrà generato il token di accesso e il token di accesso verrà salvato sul server.
Ghyath Serhal,

@ c-smile Facebook non mi ha mai chiesto di effettuare nuovamente l'accesso. Pertanto, non vedo davvero la differenza tra una password e un token di accesso.
Mickael Marrache,

so che è abbastanza tardi. ma Facebook e altri provider rilasciano token di aggiornamento, token di accesso e tempo di scadenza (per token di accesso) al momento dell'accesso. il token di accesso è di breve durata e è possibile generare un nuovo token di accesso utilizzando il token di aggiornamento. Il prossimo accesso può creare un nuovo token di aggiornamento, rendendo non valido quello vecchio
Cerlin
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.