Finalizada gestion de usuarios con google.
This commit is contained in:
parent
a389ae269f
commit
1b65d4af33
@ -10,9 +10,9 @@ const validator = require('./google_validation.js').validator;
|
|||||||
|
|
||||||
const crearUsuario = (con:any, data:object) => {
|
const crearUsuario = (con:any, data:object) => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
con.query (`INSERT INTO clientes (nombre, email, img, carritoActual, historial)\
|
con.query (`INSERT INTO usuarios (nombre, email, img, carritoActual, GOOGLE_ID)\
|
||||||
VALUES ( '${(data as any)["nombreUsuario"]}', '${(data as any)["emailUsuario"]}',
|
VALUES ( '${(data as any)["nombreUsuario"]}', '${(data as any)["emailUsuario"]}',
|
||||||
'${(data as any)["imagenUsuario"]}', '{}', '{}')`,
|
'${(data as any)["imagenUsuario"]}', '{}', '${(data as any)["googleID"]}')`,
|
||||||
(err:any, res:string) => {
|
(err:any, res:string) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
reject("Error al ejecutar query SQL (start.ts fila 18))...\n" + err);
|
reject("Error al ejecutar query SQL (start.ts fila 18))...\n" + err);
|
||||||
@ -23,7 +23,7 @@ const crearUsuario = (con:any, data:object) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const revisarUsuarioBD = (usuario:object) => {
|
const revisarUsuarioG = (usuario:object) => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
const mysql = require('mysql');
|
const mysql = require('mysql');
|
||||||
|
|
||||||
@ -42,24 +42,26 @@ const revisarUsuarioBD = (usuario:object) => {
|
|||||||
const nombreUsuario:string = (usuario as any)["name"];
|
const nombreUsuario:string = (usuario as any)["name"];
|
||||||
const emailUsuario:string = (usuario as any)["email"];
|
const emailUsuario:string = (usuario as any)["email"];
|
||||||
const imagenUsuario:string = (usuario as any)["picture"];
|
const imagenUsuario:string = (usuario as any)["picture"];
|
||||||
|
const googleID:number = (usuario as any)["sub"];
|
||||||
|
|
||||||
con.query (`SELECT nombre, email, img, carritoActual, historial FROM clientes WHERE nombre='${nombreUsuario}'`,
|
con.query (`SELECT nombre, email, img, carritoActual, USER_ID FROM usuarios WHERE GOOGLE_ID='${googleID}'`,
|
||||||
(err:any, response:any) => {
|
(err:any, response:any) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
reject("Error al ejecutar query SQL");
|
reject("Error al ejecutar query SQL");
|
||||||
}
|
}
|
||||||
const respuestaBD:string = JSON.stringify(response);
|
const respuestaBD:string = JSON.stringify(response);
|
||||||
if (respuestaBD === '[]') {
|
if (respuestaBD === '[]') {
|
||||||
crearUsuario(con, {nombreUsuario, emailUsuario, imagenUsuario})
|
crearUsuario(con, {nombreUsuario, emailUsuario, imagenUsuario, googleID})
|
||||||
.then( () => {
|
.then( () => {
|
||||||
resolve(`{ "nombre": "${nombreUsuario}", "email": "${emailUsuario}", "img": "${imagenUsuario}",
|
resolve(`{ "nombre": "${nombreUsuario}", "email": "${emailUsuario}", "img": "${imagenUsuario}",
|
||||||
"carrito": {}, "historial": {}}`);
|
"carrito": {}`);
|
||||||
})
|
})
|
||||||
.catch((msg:string) => {
|
.catch((msg:string) => {
|
||||||
reject("Error al crear el usuario...\n" + msg);
|
reject("Error al crear el usuario...\n" + msg);
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
resolve(respuestaBD);
|
console.log(`Respuesta servidor:\n${respuestaBD}`);
|
||||||
|
resolve(JSON.stringify(response[0]));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -67,7 +69,7 @@ const revisarUsuarioBD = (usuario:object) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
app.post('/log-in',(req:any, res:any) => {
|
app.post('/log-inG',(req:any, res:any) => {
|
||||||
res.header('Access-Control-Allow-Origin', 'http://localhost:8080');
|
res.header('Access-Control-Allow-Origin', 'http://localhost:8080');
|
||||||
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
|
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
|
||||||
res.header('Access-Control-Allow-Headers', 'Content-Type');
|
res.header('Access-Control-Allow-Headers', 'Content-Type');
|
||||||
@ -75,11 +77,12 @@ app.post('/log-in',(req:any, res:any) => {
|
|||||||
const token:string = req.body.idtoken;
|
const token:string = req.body.idtoken;
|
||||||
|
|
||||||
validator(token)
|
validator(token)
|
||||||
.then( (usuario:object) =>
|
.then( (usuario:object) => {
|
||||||
revisarUsuarioBD(usuario)
|
revisarUsuarioG(usuario)
|
||||||
.then(response => res.send(response.toString()))
|
.then(response => res.send(response.toString()))
|
||||||
.catch(err => res.send(err))
|
.catch(err => res.send(err))
|
||||||
)
|
|
||||||
|
})
|
||||||
.catch(console.error);
|
.catch(console.error);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
13
src/views/Administracion/Inicio.vue
Normal file
13
src/views/Administracion/Inicio.vue
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
<template>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: "Inicio"
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="sass">
|
||||||
|
|
||||||
|
</style>
|
@ -68,6 +68,10 @@
|
|||||||
|
|
||||||
const procesarUsuario = data => {
|
const procesarUsuario = data => {
|
||||||
const obj = JSON.parse(data);
|
const obj = JSON.parse(data);
|
||||||
|
obj["logged"] = true;
|
||||||
|
console.log(JSON.stringify(obj));
|
||||||
|
window.usuarioActual.pop();
|
||||||
|
window.usuarioActual.push(obj);
|
||||||
window.elRouter.push('/platos/');
|
window.elRouter.push('/platos/');
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -75,10 +79,10 @@
|
|||||||
let id_token = googleUser.getAuthResponse().id_token;
|
let id_token = googleUser.getAuthResponse().id_token;
|
||||||
|
|
||||||
let xhr = new XMLHttpRequest();
|
let xhr = new XMLHttpRequest();
|
||||||
xhr.open('POST', 'http://localhost:3000/log-in');
|
xhr.open('POST', 'http://localhost:3000/log-inG');
|
||||||
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
||||||
xhr.onload = function() {
|
xhr.onload = function() {
|
||||||
console.log('Sesión iniciada.');
|
console.log('Sesión iniciada. Servidor:\n' + xhr.responseText);
|
||||||
procesarUsuario(xhr.responseText);
|
procesarUsuario(xhr.responseText);
|
||||||
};
|
};
|
||||||
xhr.send('idtoken=' + id_token);
|
xhr.send('idtoken=' + id_token);
|
||||||
|
@ -27,11 +27,25 @@
|
|||||||
</div>
|
</div>
|
||||||
<div v-else class="row">
|
<div v-else class="row">
|
||||||
<div class="col l6 m6">
|
<div class="col l6 m6">
|
||||||
Hola {{ usuario[0].nombre }}, esta es toda la información que guardamos de ti: <br/>
|
<div class="datos-usuario">
|
||||||
|
<img :src="usuario.img" alt="Imagen del Usuario" class="left datos-usuario--imagen">
|
||||||
|
<div class="datos-usuario--descr">
|
||||||
|
{{ usuario.nombre }}, desde aquí puedes acceder a todos tus datos, y modificarlos
|
||||||
|
si deseas.
|
||||||
|
</div>
|
||||||
|
<div style="clear: left;"></div>
|
||||||
|
</div>
|
||||||
<br>
|
<br>
|
||||||
Tu nombre: {{ usuario[0].nombre }}<br>
|
<div class="datos-editar">
|
||||||
Tu email: {{ usuario[0].email }}<br>
|
<form action="">
|
||||||
|
<label for="nombre-usuario">Tu nombre</label>
|
||||||
|
<input id="nombre-usuario" placeholder="Tu nombre" :value="usuario.nombre"/><br>
|
||||||
|
<label for="email-usuario">Tu email</label>
|
||||||
|
<input id="email-usuario" placeholder="Tu email" :value="usuario.email"/><br>
|
||||||
|
<label for="id-usuario">Tu ID de usuario</label>
|
||||||
|
<input id="id-usuario" disabled :value="(99999999999 - parseInt(usuario['USER_ID'])).toString(16).toUpperCase()">
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col l6 m6">
|
<div class="col l6 m6">
|
||||||
Tu historial de Compras <br>
|
Tu historial de Compras <br>
|
||||||
@ -40,7 +54,7 @@
|
|||||||
Tu historial de compras está vacio. ¡Compra algo y lo verás aquí!
|
Tu historial de compras está vacio. ¡Compra algo y lo verás aquí!
|
||||||
</div>
|
</div>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<template v-for="(plato, key) in usuario[0].historial">
|
<template v-for="(plato, key) in usuario.historial">
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
@ -69,23 +83,32 @@
|
|||||||
},
|
},
|
||||||
data: function () {
|
data: function () {
|
||||||
return {
|
return {
|
||||||
usuario: window.usuarioActual
|
usuario: window.usuarioActual[0]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
historialVacio: function () {
|
historialVacio: function () {
|
||||||
for (i in this.usuario[0].historial) {
|
for (let i in this.usuario.historial) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
},
|
},
|
||||||
usuarioNoLogeado: function () {
|
usuarioNoLogeado: function () {
|
||||||
return !window.usuarioActual[0].logged;
|
return !this.usuario.logged;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped lang="sass">
|
||||||
|
.datos-usuario--imagen
|
||||||
|
margin: 10px
|
||||||
|
|
||||||
|
.datos-usuario--descr
|
||||||
|
padding: 5px
|
||||||
|
|
||||||
|
.datos-editar
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</style>
|
</style>
|
@ -10,7 +10,7 @@
|
|||||||
Carrito de compras
|
Carrito de compras
|
||||||
</div>
|
</div>
|
||||||
<br/>
|
<br/>
|
||||||
<router-link id="carrito--boton--seguircomprando" to="/tienda/" class="hoverable">Seguir comprando</router-link>
|
<router-link id="carrito--boton--seguircomprando" to="/platos/" class="hoverable">Seguir comprando</router-link>
|
||||||
<br/>
|
<br/>
|
||||||
<br/>
|
<br/>
|
||||||
<div id="carrito" class="row carrito">
|
<div id="carrito" class="row carrito">
|
||||||
|
Loading…
Reference in New Issue
Block a user