5

Sto scrivendo un'app per Android e ho bisogno di richiedere un token di autenticazione dall'account. Ottenere l'elenco di account e il token è facile, ho lavorato fino ad ora.Android Authentication Mananger, quando è richiesta l'autorizzazione dell'utente?

Il problema è che Jelly Bean si apre un popup chiedendo il permesso agli utenti. Ora le mie domande:

  1. Quali sono le regole per la finestra di dialogo popup da visualizzare? Mi è successo una volta, per la prima volta dopo aver aggiornato il mio dispositivo ad Android 4.1. Sembra che succeda a caso: installando e disinstallando l'App non ero in grado di riprodurre la situazione in cui questo popup ritorna.
  2. C'è un modo per ripristinarlo senza eseguire il ripristino delle impostazioni di fabbrica? Ho bisogno di riprodurlo per il test per la domanda 3.)
  3. C'è un modo per scoprire se il popup apparirà prima del richiedere l'authtoken e cioè attendere fino a quando non è più richiesto (cioè, se l'utente ha l'app in questione installato ma mai usato o se authtoken è scaduto?) e richiesto poi?

    So che la maggior parte degli utenti Android è molto inesperta e potrebbe essere spaventata da alcune richieste di autorizzazione e vorrei evitare di richiedere authtoken quando attiverebbe questo popup dell'utente.

+0

È questo il popup che stai chiedendo? http://stackoverflow.com/questions/3965126/android-google-calendar-permission-issue – pcans

+0

Ci scusiamo per la risposta tardiva, ma sì. Questo è il popup che è apparso, solo con diversi servizi Google. Ma non è mai tornato indietro, non importa quante volte ho eliminato l'app e reinstallato –

risposta

3

I Tried di revocare accesso a un progetto di App Engine del mio e sono stato in grado di revocare il permesso per andare a Google Account pagina di impostazione. Qui è possibile revocare l'accesso dal servizio di accesso Android. Successivamente ho dovuto rimuovere l'account google dal mio telefono e aggiungerlo nuovamente. Se avvii di nuovo l'app dovresti vedere di nuovo la finestra di dialogo delle autorizzazioni.

0

Ripristino/revocare l'autorizzazione in genere dipendono dal tipo di token. Ci sono due lati di questo: revocare il token sul lato server utilizzando la pagina del tuo profilo Google e revocare l'autorizzazione per la tua app per utilizzare questo tipo di token (su Android). Per il lato server è possibile revocare i token OAuth e AuthSub, ma non i token ClientLogin. Vai a https://www.google.com/settings/security e fai clic sul pulsante "Modifica" nella sezione "Autorizzazione di applicazioni e siti". Per revocare l'autorizzazione del dispositivo, disinstallare l'app dovrebbe ripristinarla (rimuove una voce in un database di sistema quando il pacchetto viene disinstallato). Apparentemente questo non funziona correttamente su alcuni dispositivi, ma è dovrebbe lavoro. La finestra di dialogo verrà visualizzata solo quando si tenta di utilizzare un token, quindi non dovrebbe apparire prima di averlo richiesto. Dovresti gestire la scadenza nella tua app (ad esempio, richiedere un nuovo token), ma questa non mostrerà una finestra di dialogo di autorizzazione.

+0

Grazie, testato disinstallando su Nexus 7, Samsung Galaxy Nexus e altri, ma non ha revocato il permesso. Richiedo l'autorizzazione per il servizio Google Cloud Print (token OAUTH2), ma sul lato server l'unica voce di accesso autorizzato è stata "Servizio di accesso Android". La rimozione di questo ha comportato il reinserimento delle credenziali sul dispositivo, ma la schermata di autorizzazione non è stata nuovamente visualizzata. – PJL

+0

Hm, interessante. Non so dove sia gestita Cloud Print. Forse la console API? Deve esserci un posto dove puoi revocare i token. Per quanto riguarda i permessi sui dispositivi, questo è il modo in cui funzionava, forse è stato modificato su JB, non è stato controllato nei dettagli. –