Sto scrivendo un app Android che parla a un server remoto, e voglio consentire agli utenti di app per accedere al server utilizzando le credenziali di Google che risiedono sul loro telefono cellulare, cioè senza richiedere l'utente per inserire la propria password di google in qualsiasi punto della mia app. Ad esempio, se il telefono (Android) dell'utente è stato configurato con "[email protected]", e quindi installano ed eseguono la mia app, la mia app presenterà una finestra di dialogo che dice "Vuoi accedere come qualcosa del genere @ gmail.com? ", e dopo aver premuto un pulsante Ok avrebbero stabilito un ID sul mio server che sa che il loro indirizzo email è [email protected], come certificato da Google stesso.autorizzazione account Google all'interno di un'applicazione Android
Ho trovato ricette parziali diffuse e varie su come procedere, compresa la documentazione di oauth2 di google, ma non ho mai indugiato su come realizzare tutto questo.
io ho il codice di Android che utilizza l'AccountManager per capire quali account Google sono su un determinato telefono. Chiedo all'utente quale account google vorrebbe utilizzare per accedere e quindi restituisco un token di autorizzazione.
Passato quel punto, sto praticamente facendo girare le mie ruote. Le ricette che ho guardato sembrano chiamare per il mio facendo un HTTP GET di questa forma:
http://<myWebServer>.com/_ah/login?continue=<someUrlIChoose>&auth=<authToken>
... che (a) è insoddisfacente, in quanto sembra essere specifico per AppEngine e voglio la libertà per eseguire questo su qualsiasi back-end di mia scelta, e (b) anche sperimentando con appengine, l'istanza appengine che ho impostato non sembra essere affatto segnalata, cioè i registri mostrano ora le query ad esso (speravo l'URL di someUrlIChoose sarebbe stato chiamato con qualcosa) ... quindi nessuna opportunità di essere informati della validità del token.
Domande specifiche includerebbero:
- Cosa devo fare con il token di autenticazione ... posso inviare al mio server e hanno in qualche modo il mio contatto server di Google per verificare la validità del token di per la account specificato? O c'è qualche backchannel comunicazione che dovrebbe avere già (in questa fase del processo ) originati dai server di Google per informare il mio server che questo token è valido (e se sì, come faccio a impostare che fino)? O qualcosa del genere ?
- ho ragione a supporre che questo processo dovrebbe essere fattibile nel contesto di qualsiasi back-end (non solo appengine)?
- È oauth2 cosa dovrei usare (al contrario di oauth1, o qualcosa di )? Tutto ciò che ho letto sembra implicare che il supporto di google per oauth2 sia "sperimentale" ... ma non ho verificato se tali asserzioni siano attuali o obsolete; e anche se attuale, Google ha una cronologia di di mantenere vari prodotti in forma non definitiva permanente (ad esempio, beta eterno), quindi non so cosa concludere a riguardo.
- Tutto il resto che è rilevante ...