Creé un formulario de registro que almacena datos de usuario en la hoja de Google y quiero crear un formulario de inicio de sesión que use datos almacenados para la validación para ser redirigido a otra página. ¿Cómo puedo hacerlo?
Cree una API de back-end, usando algo como Express NodeJS. Este backend utilizará la API de Hojas de cálculo de Google para analizar los datos de la hoja de cálculo.
Cuando el front-end inicie sesión, envíe una solicitud al back-end, algo que parezca, aquí está mi nombre de usuario y contraseña. Luego, cuando el backend reciba esta solicitud, verificará con los datos de las hojas de Google analizadas para ver si las credenciales son correctas. Si es así, redirígelos o haz lo que quieras.
El punto de tener un backend (un servidor separado, alojado) como un paso adicional, es que esto oculta la hoja de cálculo que contiene toda la información del usuario final. Solo el servidor puede ver la información contenida en la hoja de cálculo y decidir si las credenciales del usuario son correctas.
secuencia de comandos de Google:
function login(obj) { const ss = SpreadsheetApp.getActive(); const sh = ss.getSheetByName('Login'); const vs = sh.getRange(2,1,sh.getLastRow() - 1, 2).getValues(); let robj = {loggedin:false}; for(let i = 0;i<vs.length; i++) { if(vs[i][0] == obj.userid && vs[i][1] == obj.password) { robj.loggedin = true; break; } } return robj; } function launchLogin() { const ui = SpreadsheetApp.getUi(); ui.showModelessDialog(HtmlService.createHtmlOutputFromFile("ah1"),"Login Form"); }html:
<!DOCTYPE html> <html> <head> </head> <body> <div id="content"></div> <form> <input type="text" placeholder="UserId" name="userid" /> <br /><input type="text" placeholder="password" name="password" /> <br /><input type="button" value="Login" onClick="login(this.parentNode);" /> </form> <div id="msg"></div> <script> function login(obj) { google.script.run .withSuccessHandler((obj) => { (obj.loggedin == true) ? document.getElementById('msg').innerHTML = "Your are logged in" : document.getElementById('msg').innerHTML = "Go away"; }).login(obj); } console.log("My Code"); </script> </body> </html>Cuadro de diálogo del formulario de inicio de sesión:
Hoja de inicio de sesión:
| ID de usuario | clave |
|---|---|
| abucheo | hoo |
| yo | tú |