Come posso verificare un token di accesso all'autenticazione di Google?
Devo in qualche modo interrogare Google e chiedere: [il token di accesso fornito] è valido per l'account Google [esempio@esempio.com]?
Versione breve :
è chiaro come un token di accesso fornito tramite l' autenticazione di Google Api :: Autenticazione OAuth per applicazioni Web può essere utilizzato per richiedere dati da una gamma di servizi Google. Non è chiaro come verificare se un determinato token di accesso è valido per un determinato account Google. Mi piacerebbe sapere come
Versione lunga :
sto sviluppando un'API che utilizza l'autenticazione basata su token. Un token verrà restituita al momento della fornitura di una valida username + password o previa costituzione di una terza parte gettone da uno qualsiasi dei N servizi verificabili.
Uno dei servizi di terze parti sarà Google, consentendo a un utente di autenticarsi rispetto al mio servizio utilizzando il proprio account Google. Questo verrà successivamente esteso per includere account Yahoo, provider OpenID di fiducia e così via.
Esempio schematico di accesso basato su Google:
testo alternativo http://webignition.net/images/figures/auth_figure002.png
L'entità "API" è sotto il mio pieno controllo. L'entità "interfaccia pubblica" è qualsiasi app basata su Web o desktop. Alcune interfacce pubbliche sono sotto il mio controllo, altre non lo saranno e altre ancora non potrei nemmeno conoscerle.
Pertanto, non posso fidarmi del token fornito all'API nel passaggio 3. Questo verrà fornito insieme al corrispondente indirizzo email dell'account Google.
Devo in qualche modo interrogare Google e chiedere: questo token di accesso è valido per esempio@esempio.com ?
In questo caso, esempio@esempio.com è l'identificatore univoco dell'account Google: l'indirizzo email utilizzato da qualcuno per accedere al proprio account Google. Non si può presumere che si tratti di un indirizzo Gmail: qualcuno può avere un account Google senza un account Gmail.
La documentazione di Google indica chiaramente come, con un token di accesso, i dati possano essere recuperati da numerosi servizi Google. Nulla sembra affermare come è possibile verificare se un determinato token di accesso è valido in primo luogo.
Aggiorna Il token è valido per N servizi Google. Non riesco a provare un token su un servizio Google come mezzo per verificarlo in quanto non saprò quale sottoinsieme di tutti i servizi Google che un determinato utente effettivamente utilizza.
Inoltre, non userò mai il token di accesso all'autenticazione di Google per accedere a qualsiasi servizio di Google, semplicemente come mezzo per verificare che un presunto utente di Google sia effettivamente chi dice di essere. Se c'è un altro modo di farlo, sono felice di provare.