Pregunta

Yo y algunos chicos aquí están trabajando en una puesta en marcha. Actualmente estamos utilizando Google OpenID API para gestionar el registro y la entrada a nuestra aplicación, pero queremos migrar a un modelo de registro de usuario más fácil. Y para ello, necesitamos saber si hay una manera en que puede detectar si un correo electrónico (Gmail no) ya es una cuenta de Google. ¿Hay una manera de obtener esta información desde el Google de sesión único API?

anteriores gracias por su ayuda! :)

¿Fue útil?

Solución

No se puede hacer eso. No creo que Google se podría decir que sin el consentimiento del usuario.

Sin embargo, podría ver si el dominio es un dominio de Google Apps mediante el uso esto como la URL Descubrimiento: https://www.google.com/accounts/o8 /site-xrds?hd=mail.moztw.org

Destacar que el administrador del dominio no podría correctamente instalado el soporte de OpenID para el dominio. Mi diapositivas han discutido esto en detalle: http://www.slideshare.net/timdream/google-apps-account -como-openid

Otros consejos

Si estás en un Mac, abra Terminal y entrar $ host {example.com} para determinar si su correo electrónico está alojado en Google.

Por ejemplo:

$ 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.

Esto no es una solución completa, pero se puede decir si alguien está en Google Apps examinado los registros MX de su dominio. El eslabón de la respuesta no funcionó para mí, así que puede ser una solución mejor.

Lo hago por tener un archivo de prueba, a la que agrego la dirección de correo electrónico utilizando la función addViewer. Lo hago en un try ... catch. Si un error es capturado entonces me puse mi bandera local para decir "no una cuenta de Google". Si no hay error, que luego eliminarlos como un visor de mi archivo ficticio y puse mi bandera para emitir la dirección de correo electrónico es una cuenta de Google de fiar.

He trabajado a cabo la sugerencia de Doug y funciona. Sólo asegúrese de que el usuario (efectiva) invocando la función tiene el derecho de llamar addViewer. Un truco para lograr esto es para asegurarse de que la rutina se llama desde una rutina de disparo, por lo que el dueño del script es el usuario efectivo.

function checkIfGoogleAccount(emailAddress) {
  try {
    SpreadsheetApp.getActiveSpreadsheet().addViewer(emailAddress) ;
    SpreadsheetApp.getActiveSpreadsheet().removeViewer(emailAddress) ;
    return true ;
  }
  catch(err) {
    return false ;
  }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top