Funzionerà utilizzando il flusso di accesso di Google Plus, che ritengo sia l'unico che consente l'autenticazione incrociata, quindi gli ambiti sono Login Google Plus.
"www [dot] googleapis [dot] com/auth/plus.login"
Così che cosa sta accadendo qui è si otterrà l'access_token dall'estensione che vi sarà l'invio di Firebase con la richiesta utilizzando authwihtoauthtoken che specifica google come un fornitore insieme al token_accesso acquisito da chrome.identity.getAuthToken()!
https://www.firebase.com/docs/web/api/firebase/authwithoauthtoken.html
Ora, il fatto è che questo token di accesso potrebbe essere rilasciato da qualsiasi altra applicazione, quindi abbiamo bisogno di assicurarsi che sia valido ed è stato rilasciato per la nostra applicazione, in fondo abbiamo bisogno di sapere là isn 't uomo nel mezzo cercando di accedere al nostro database.
Questa verifica viene eseguita dal firebase.
Verificheranno se questo token appartiene alla stessa applicazione in cui è stato rilasciato il token.
Quindi sarà necessario creare un altro set di credenziali nella stessa applicazione nella console di Google Developer come per la propria estensione. Fondamentalmente faremo la stessa cosa come se dovessimo farlo per la nostra pagina Web, ma inseriremo questo nuovo set di credenziali nella pagina di sicurezza di google oAuth di Firebase.
Faranno questo controllo per noi lì. Verificheranno con google se il token viene rilasciato per la stessa app.
Questo è tutto.
Informazioni di base.
https://developers.google.com/identity/protocols/OAuth2UserAgent#validatetoken
Caso d'uso
Invio token ID con le richieste che devono essere autenticati. Ad esempio, se è necessario passare i dati al server e si desidera garantire che determinati dati provengano da un utente specifico.
Quando verificare l'accesso Tutti i token devono essere verificati sul server a meno che non si sappia che provengono direttamente da Google. Tutti i token che ricevi dalle tue app client devono essere verificati.
Google ha un tutorial su come fare questo per python trovato in:
"github [dot] com/googleplus/gplus-verifytoken-python"
Quindi, in pratica ciò che sta accadendo qui è; invece tu fai la verifica sul tuo server, Firebase fa questa verifica per te quando inserisci CLIENT_ID e APP_SECRET nel firebase e abiliti l'autenticazione di Google.
Il modo per farlo correttamente è una combinazione o lo stesso stile di verifica a chi è stato emesso il client_secret. Chrome ti fornirà un access_token e quindi questo access_token verrà controllato sul back-end di Firebase.
Ingegnere presso Firebase qui. Poiché le estensioni di Chrome consentono una modifica più ampia delle richieste HTTP, consentendo di configurare un referente diverso qui potrebbe non essere la soluzione sicura. Se ne hai la possibilità, mi piacerebbe sentire un po 'di più sul tuo caso d'uso e sul tipo di autenticazione che vorresti usare nella tua estensione - non esitate a scrivermi a [email protected] –
Scriverò a voi gente a riguardo. Ho un lungo foglio di appunti che ho fatto mentre stavo lavorando a questo. Attualmente il sistema ha il codice per 3 diverse piattaforme e si estenderà a circa 12 piattaforme. Penso che voi ragazzi potreste trovarlo interessante. –