使用 Google Apps Script 开发 Web 应用/身份验证
外观
通常,您需要保护您的 Web 应用以确保只有特定人员可以使用它。当您发布页面时,您在两个主要类别中有一些选项
- 谁有访问权限(谁可以访问页面)?
- 只有您
- 您域中的任何人(对我来说是 hamlin.edu)
- 任何人
- 哪个帐户用于运行脚本?
- 您的(即使其他人访问)
- 他们的(在上面的“任何人”中不起作用)
这些很有用,但它们有点粗略。有时您只希望特定的人员拥有访问权限,或者能够执行某些操作。
对于本节,我们将假设您已将“谁有访问权限”设置为“您域中的任何人”。如果您这样做,您可以通过以下方式确定谁在访问
var email = Session.getActiveUser().getEmail();
获得用户的电子邮件后,您可以将其与电子表格中允许用户的表格进行匹配,该表格可能包含其他有关他们的信息,例如他们被允许执行的操作。假设您有一个看起来像这样的表格
电子邮件 | 姓名 | 角色 |
---|---|---|
[email protected] | Andy Rundquist | 管理员 |
[email protected] | Testy McTesterson | 学生 |
[email protected] | Tess Tesserson | 教职工 |
然后我们可以这样验证用户
var email = Session.getActiveUser().getEmail();
var usersData=SpreadsheetApp.getActive().getSheetByName("my users").getDataRange().getValues();
usersData.shift() // gets rid of headers row
var user = usersData.find(r=>r[0]==email);
if (!user) {
return HtmlService.createHtmlOutput("sorry, nothing for you here");
}
// now do something cool with the user
var role=user[2]; // not 3, remember how array numbering works
if (role == 'admin') {
// do cool things here
}
// etc