Domanda

Io e alcuni ragazzi qui stanno lavorando su un avvio in su. Attualmente stiamo utilizzando Google OpenID API per gestire la registrazione e il login al nostro app, ma vogliamo migrare verso un modello di registrazione degli utenti più facile. E per questo, abbiamo bisogno di sapere se c'è un modo siamo in grado di rilevare se una e-mail (non Gmail) è già un account Google. C'è un modo per ottenere queste informazioni dal Google Single Sign-on API?

precedente grazie per il vostro aiuto! :)

È stato utile?

Soluzione

Non si può farlo. Non credo che Google potrebbe dire che senza l'autorizzazione dell'utente.

Si potrebbe, tuttavia, vedere se il dominio è un un dominio Google Apps da un uso questo come il Discovery URL: https://www.google.com/accounts/o8 /site-xrds?hd=mail.moztw.org

ha osservato che l'amministratore del dominio potrebbe non installato correttamente il supporto OpenID per il dominio. La mia presentazione hanno discusso in dettaglio: http://www.slideshare.net/timdream/google-apps-account -come-OpenID

Altri suggerimenti

Se siete su un Mac, Terminal aperto ed entra $ host {example.com} per determinare se la loro e-mail è ospitato da Google.

Ad esempio:

$ host yelp.com
yelp.com has address 104.16.57.23
yelp.com has address 104.16.56.23
yelp.com mail is handled by 1 ASPMX.L.GOOGLE.com.
yelp.com mail is handled by 10 ASPMX2.GOOGLEMAIL.com.
yelp.com mail is handled by 10 ASPMX5.GOOGLEMAIL.com.
yelp.com mail is handled by 10 ASPMX3.GOOGLEMAIL.com.
yelp.com mail is handled by 5 ALT2.ASPMX.L.GOOGLE.com.
yelp.com mail is handled by 10 ASPMX4.GOOGLEMAIL.com.
yelp.com mail is handled by 5 ALT1.ASPMX.L.GOOGLE.com.

Questa non è una soluzione completa, ma si può dire se qualcuno è in Google Apps, cercando in record MX del proprio dominio. L'anello della risposta non ha funzionato per me, in modo che possa essere una soluzione migliore.

Lo faccio da avere un file fittizio, a cui aggiungo l'indirizzo e-mail utilizzando la funzione addViewer. Lo faccio in un try ... catch. Se un errore e 'colto in poi ho impostato la mia bandiera locale per dire "non un account Google". Se nessun errore, ho quindi rimuoverli come un visualizzatore del mio file fittizio e impostare la mia bandiera a dire l'indirizzo di posta elettronica è un account Google legit.

Ho lavorato fuori il suggerimento di Doug e funziona. Basta fare in modo che la (effettiva) utente invocando la funzione ha il diritto di chiamare addViewer. Un trucco per farlo è quello di assicurarsi che la routine viene chiamata da una routine di innesco, in modo che il proprietario dello script è l'utente efficace.

function checkIfGoogleAccount(emailAddress) {
  try {
    SpreadsheetApp.getActiveSpreadsheet().addViewer(emailAddress) ;
    SpreadsheetApp.getActiveSpreadsheet().removeViewer(emailAddress) ;
    return true ;
  }
  catch(err) {
    return false ;
  }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top