Google Planilhas Avançado - #128 Projeto Completo - Assinatura Digital III
09/11/2023Neste tutorial continuaremos com nosso projeto de assinaturas digitais dentro do Google Sheets, desta vez registrando o protocolo da assinatura para autenticação.
Protocolo de Assinatura
A ideia dessa aula é que quando um documento seja assinado isso gere um número de protocolo no banco de dados para que a assinatura seja realmente autenticada. Este é um dos motivos do banco de dados ser separado da planilha.
Precisaremos baixar a lib moment.js
O código final ficará assim:
let app = SpreadsheetApp;
let spreadsheetDoc = app.openByUrl('https://docs.google.com/spreadsheets/d/1i3NymFm9U0C4mOe_R_NH8HBXkwmXaR1xEXxx_fXG3ww/edit#gid=0');
let spreadsheetDB = app.openByUrl('https://docs.google.com/spreadsheets/d/1YGpeI12s2-JkuafRx7fPoKI5IhRn76eb3iUSFZXeacA/edit#gid=846667016');
let sheetDoc = spreadsheetDoc.getSheetByName('Página1');
let sheetUsers = spreadsheetDB.getSheetByName('USUÁRIOS');
let sheetProtocols = spreadsheetDB.getSheetByName('PROTOCOLOS');
/**
* Solicitar email e senha do usuário
*/
function verifyUser()
{
let ui = app.getUi();
let prompt = ui.prompt('Digite o seu email:');
let button = prompt.getSelectedButton();
let ress = prompt.getResponseText();
let emails = sheetUsers.getRange('B2:B').getValues().toString().split(',');
if(button === ui.Button.OK){
if(emails.indexOf(ress) == -1){
ui.alert('Email não cadastrado!');
}else{
let rowEmail = emails.indexOf(ress)+2;
let prompt2 = ui.prompt('Digite a senha:');
let button2 = prompt2.getSelectedButton();
let ress2 = prompt2.getResponseText();
let password = sheetUsers.getRange('C2:C').getValues().toString().split(',');
if(button2 === ui.Button.OK){
if(password.indexOf(ress2) == -1){
ui.alert('Senha inválida');
}else{
sheetDoc.getRange(`B17`).setValue(`O documento foi assinado pelo ${sheetUsers.getRange(`D${rowEmail}`).getValue()} com email ${sheetUsers.getRange(`B${rowEmail}`).getValue()}`);
let lastRowProtocol = sheetProtocols.getLastRow()+1;
let today = new Date();
today = moment(today).format('DD/MM/YYYY');
let token = Math.random().toString(36).slice(2);
sheetProtocols.getRange(`A${lastRowProtocol}:D${lastRowProtocol}`).setValues([
[
lastRowProtocol-1,
token,
rowEmail-1,
today
]
]);
sheetDoc.getRange('B18').setValue(`Código de Autenticação: ${token}`);
}
}
}
}
}
Com o código acima, após cada assinatura, teremos um protocolo de autenticação da assinatura.
Então é isso, por hoje é só! Fiquem todos com Deus! Sucesso nos códigos e na vida!
Precisa de um professor? webdesignemfoco@gmail.com
Disse-lhes Jesus: Enchei de água essas talhas. E encheram-nas até em cima. João 2 - 1