使用 Google Apps Script 開發 Web 應用/身份驗證
外觀
通常,您需要保護您的 Web 應用以確保只有特定人員可以使用它。當您釋出頁面時,您在兩個主要類別中有一些選項
- 誰有訪問許可權(誰可以訪問頁面)?
- 只有您
- 您域中的任何人(對我來說是 hamlin.edu)
- 任何人
- 哪個帳戶用於執行指令碼?
- 您的(即使其他人訪問)
- 他們的(在上面的“任何人”中不起作用)
這些很有用,但它們有點粗略。有時您只希望特定的人員擁有訪問許可權,或者能夠執行某些操作。
對於本節,我們將假設您已將“誰有訪問許可權”設定為“您域中的任何人”。如果您這樣做,您可以透過以下方式確定誰在訪問
var email = Session.getActiveUser().getEmail();
獲得使用者的電子郵件後,您可以將其與電子表格中允許使用者的表格進行匹配,該表格可能包含其他有關他們的資訊,例如他們被允許執行的操作。假設您有一個看起來像這樣的表格
| 電子郵件 | 姓名 | 角色 |
|---|---|---|
| arundquist@hamline.edu | Andy Rundquist | 管理員 |
| test1@hamline.edu | Testy McTesterson | 學生 |
| test2@hamline.edu | 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