Google Apps脚本中的客户端服务器通信

时间:2016-01-23 11:54:42

标签: google-apps-script

我正在制作一个三页的谷歌网络应用程序。第一页是登录,第二页是用户注册,第三页是应用程序。我正在google工作表中注册数据。现在我希望从第一页登录,其中脚本根据谷歌表的存储值检查用户ID和密码,但不知道如何实现它。

在Registration.html中,我收集用户ID和密码并将其存储在googlesheet中。我能够毫无问题地做到这一点

对于Login.html,我想编写一个脚本,该脚本应检查用户输入的用户ID和密码,以确定在工作表中为该用户ID存储的值。例如,如果存储在Google工作表中的用户ID为&# 39克用户;密码是' 123456'然后在登录时如果用户正确输入这些详细信息,那么他将被重定向到application.html,如果他输入错误,那么将向他显示一条消息"输入的用户名/密码是错误的他/她可以重试"

我想可以通过以下方式完成,

编写一个函数,比如Code.gs中的PwdCheck(),例如,

function PwdCheck(form){
/* collect form values entered in client login.html */
  var ss = SpreadsheetApp.openById('Sheetid');
  var sheet = ss.getSheetByName('SheetName');
  var UsrId = form.UsrId;
  var Pwd = form.Pwd; 
  var rr= sheet.getRange(2,3,100,2).getValues();
/* if clause has only one value from range specified by var rr, for example */
  if(UsrId == rr[0][0] && Pwd ==rr[0][1]){
     return Al();
  } else {

    return Msg();

  }


}

function Msg(){
  /* Code that present client(login.html) a message that password/userid are incorrect. retry again. This message can be presented in a <p> tage in login.html */
  return x;

}
function Al(){

  /* Code which redirects the login.html to application.html since password entered in login page are correct */

}

1 个答案:

答案 0 :(得分:0)

您需要循环直到在存储的电子表格中找到输入的用户名,然后随身携带密码。最后比较客户端和服务器密码。

function PwdCheck(form){
/* collect form values entered in client login.html */
  var ss = SpreadsheetApp.openById('Sheetid');
  var sheet = ss.getSheetByName('SheetName');
  var UsrId = form.UsrId;
  var Pwd = form.Pwd; 
  var storedPassword;
  var rr= sheet.getRange(2,3,100,2).getValues();

  //rr is an array you need to loop through the rows and find your user name, 
  //then pic the stored password for it
  for(var row in rr){
    if(UsrId == rr[row][0])
    {
      storedPassword = rr[row][1];
      break;
    }
  }

  // now check stord and entered password
  if( Pwd == storedPassword){
     return Al();
  } else {

    return Msg();
  }
}