L'invio di nome utente e password in ogni richiesta non è eccezionale.
È possibile utilizzare qualsiasi cosa che si desidera inviare i cookie. È solo un'altra intestazione HTTP. Ma questo fa sorgere la domanda su cosa c'è nel cookie. Dipende da cosa è l'architettura client/server. Le app Web utilizzano le chiavi di sessione perché tradizionalmente i client Web non hanno mantenuto alcuno stato, quindi il server dell'app doveva. I client nativi possono avere tutti i tipi di stato e quindi in genere non hanno bisogno del server per fornire questo.
Ma è necessaria l'autenticazione. Ecco cosa sono le cose come OAuth e OAuth 2. Consentono di autenticarsi una volta e quindi di utilizzare token che possono essere invalidati dal lato server. Un po 'come sessioni di lunga durata senza dati.
Sono un po 'complicate ma ci sono librerie open source sia per il server che per i pezzi client oppure è possibile eseguire il rollover. La maggior parte della complicazione riguarda l'ottenimento del token originale che è possibile cortocircuitare se si possiedono il client e il server. OAuth può diventare piuttosto complicato perché tutte le richieste sono firmate con un token segreto. OAuth 2 può essere semplice come un segreto condiviso (che richiede quindi SSL) in un cookie.
Risposta molto dettagliata per un argomento molto interessante. Grazie. – Francesco
OAuth è eccessivo se ho solo 2 gambe? Solo il mio iPhone e il mio server. Un singolo token di accesso (salvato su iPhone) funzionerà a sufficienza? – Ryan
Finché si fanno tutte le richieste su SSL, sì. Questo è praticamente ciò che OAuth 2 degenera nel flusso più semplice. – smparkes