iT邦幫忙

0

App Inventor 利用谷歌表格做一個萬用 註冊&登錄&加密解密 使用 Apps Script

  • 分享至 

  • xImage
  •  

1.我認為是時候寫一個關於如何使用谷歌表格作為應用程式的註冊和登錄了。
2.簡單的前提是一張包含使用者名、加密密碼,使用者將使用其使用者名和合規密碼進行註冊,然後使用這些相同的憑據登錄。該應用程式絕不會保存「真實」密碼,也不會將其發送到谷歌應用腳本或谷歌工作表。目的再次是無需求助於擴展名即可做到這一點,並提供行業級的安全性/密碼保護。

優點說明:
1.全雲端修改。
2.密碼任何人無法得知。
3.可串任何平台。
4.手機登入註冊系統。

手機登入註冊:
https://ithelp.ithome.com.tw/upload/images/20230621/20136076lYfy3fc7w3.jpg
https://ithelp.ithome.com.tw/upload/images/20230621/20136076kz3jtcvwWg.jpg
https://ithelp.ithome.com.tw/upload/images/20230621/20136076WTgY9t6IO2.jpg
https://ithelp.ithome.com.tw/upload/images/20230621/20136076OeV63g1ojH.jpg

App script 如下程式碼:

function doGet(e) {
return Authentication(e);
}
function doPost(e) {
return Authentication(e);
}



function Authentication(e) {

if (e.parameter.func == 'Create') {

var ss = SpreadsheetApp.openById(e.parameter.ID);
var sh = ss.getSheetByName(e.parameter.SH);

var rg = sh.getName() + "!" + sh.getDataRange().getA1Notation();
var email = e.parameter.email;
var sql = '"Select B where B=\'' + email + '\'"';
var qry = '=IFERROR(query(' + rg + ',' + sql + '),"")';
var ts = ss.insertSheet();
  const sheets = SpreadsheetApp.getActive().getSheets();
  sheets[sheets.length-1].setName(`Sheet${sheets.length}`);
var setQuery = ts.getRange(1,1).setFormula(qry);
var getResult = ts.getDataRange().getValues();
ss.deleteSheet(ts);


if (getResult == "") {
var data = [e.parameter.fullname, e.parameter.email, e.parameter.password, e.parameter.phone];
sh.appendRow(data);

return ContentService.createTextOutput(getResult);
}

}

if (e.parameter.func == 'Login') {
var msg = '';
var ss = SpreadsheetApp.openById(e.parameter.ID);
var sh = ss.getSheetByName(e.parameter.SH);

var email = e.parameter.email;
var password = e.parameter.password;

var rg = sh.getName() + "!" + sh.getDataRange().getA1Notation();
var sql = '"Select A,B,C where B=\'' + email + '\'"';
var qry = '=IFERROR(query(' + rg + ',' + sql + '),"")';

var ts = ss.insertSheet();
var setQuery = ts.getRange(1,1).setFormula(qry);
var getName = ts.getRange(1,1).getValue();
var getEmail = ts.getRange(1,2).getValue();
var getPWD = ts.getRange(1,3).getValue();
ss.deleteSheet(ts);

if (getName != "") {

msg = getName +','+ getEmail +','+ getPWD ;

return ContentService.createTextOutput(msg);
}
}
}

谷歌表格如下(第三欄是加密資料):
https://ithelp.ithome.com.tw/upload/images/20230621/201360765u2BaprfoP.png

加解密 function
https://ithelp.ithome.com.tw/upload/images/20230621/201360765XiX53NlPw.jpg

如何使用加解密及login regist function:
https://ithelp.ithome.com.tw/upload/images/20230621/201360767Ym4FiCS1W.jpg


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言