2012-04-30 18 views
9

Im haciendo un sitio web donde tiene un registro de usuario. Lo que iba a hacer es cuando un usuario inicia sesión con Google, almacena sus detalles (ID, correo electrónico, nombre, imagen y enlace G +) en una base de datos local. Luego, cada vez que el usuario se conecta al sitio web, verifica si la identificación del usuario está en la base de datos local. Si es así, están conectados y pueden acceder a todos sus detalles y a los documentos, etc. que han subido. Si no lo son, pueden iniciar sesión.¿Puedo almacenar información de Google API en la base de datos?

¿Tengo permiso para hacer esto, o de alguna manera tengo que autenticar al usuario en cada página que visitan y luego encontrar una forma de vincular esto a mi base de datos local?

+0

No creo que no puedas. Hay una razón por la cual los usuarios de datos están compartiendo se llama "público". Es lo mismo con Facebook o Twitter o cualquier otro proveedor de datos OAuth (o similar). Siempre que diga que su nombre es John Doe, significa que cualquier persona que tenga acceso al proveedor de servicios podrá verlo. Si usted como usuario no desea que nadie lo sepa, simplemente haga clic en Cancelar en el diálogo de OAuth. (¿Cómo agregas líneas nuevas en SO?) – Andris

+0

Sí, sin embargo, la solicitud de inicio de sesión de Google muestra también lo que solicito: XXXXXX solicita permiso para: Ver información básica sobre tu cuenta Ver tu nombre, URL de perfil público y foto. Ver su género y fecha de nacimiento. Ver su país, idioma y zona horaria. Ver su dirección de correo electrónico Ver la dirección de correo electrónico asociada a su cuenta Realizar estas operaciones cuando no estoy usando la aplicación – K20GH

Respuesta

3

No creo que tenga permiso para almacenar información de API en su propia base de datos. Además de eso, ¿por qué ir a tal extremo para permitir a los usuarios iniciar sesión/acceder a sus documentos. Si desea utilizar su información de google como credenciales de inicio de sesión, todo lo que tiene que hacer es verificar en su base de datos en lugar de consultar su base de datos, hacer una llamada de cURL a la API de Google y ver si le devuelven un usuario. De ser así, cree una sesión y permita que el usuario inicie sesión.

+1

Básicamente mi base de datos contiene 5 campos como se menciona en mi pregunta. Si no utilizo Google, les pediría que completaran esa información de todos modos, así que todo lo que hago es usar Google para completar los datos. Cuando el usuario inicia sesión en el sitio, tiene la capacidad de cargar archivos, comentar, etc., así que necesitaría una forma de consultar esto y si no puedo consultar mi base de datos, entonces no veo cómo puedo hacerlo. Imagino que el sitio se volverá bastante pesado en el tráfico, por lo que si llama a la API de Google para cada carga de página, pronto alcanzaré el límite de llamadas API de 10.000 por mes. – K20GH

+0

Guarde los documentos cargados, etc. en su base de datos. Pero los datos de Google ya están disponibles y no hay necesidad de almacenarlos usted mismo. (probablemente no sea legal). Sería mejor hacer una llamada de API de Google cuando inicien sesión, y que Google le devuelva la información de usuario que extraería de su base de datos y la insertara en una sesión al iniciar sesión. – JeremyS

+1

Supongo que sería una forma de hacerlo. Sin embargo, ¿cómo puedo identificar qué entradas de la base de datos son para el usuario? El único campo único que puedo ver que Google usa es el ID de usuario que es una cadena de números, sin embargo, si Im no puede mantenerlo en la base de datos, entonces no veo cómo puedo hacerlo. Todo el sistema que trato de implementar es EXACTAMENTE el mismo que el de StackOverflow – K20GH

0

Uso del flujo lateral del cliente de google plus y adición del botón de inicio de sesión basado en HTML. Llame a userid a través de ajax y luego inserte el resp.id en una sesión. El sessionid se almacena en una base de datos.

Sin embargo, al cerrar el navegador e iniciar sesión nuevamente, se inicia una nueva sesión y no hay acceso a ninguno de los documentos cargados previamente.

Cuestiones relacionadas