簡體   English   中英

如何通過 OAuth2 在 GAS 中使用多個帳戶?

[英]How to use multiple account in GAS with OAuth2?

我遵循了 GAS OAuth2 庫示例 但我想實現以下目標。

  1. UserA 通過 Https 向 GAS 請求授權Url 獲取/發布請求( doGet()doPost() ),帶有參數 userID
  2. GAS 返回authorizationUrl並將其state變量與 UserA 的 userID 一起保存在 Google Sheet 中
  3. UserA 使用該authorizationUrl 進行授權
  4. GAS 檢查來自authCallback() function 的state變量,並使用谷歌表中舊存儲的state變量對其進行驗證。 如果相同,則將用戶 A 的訪問令牌和用戶 ID 存儲在同一個谷歌表中

像這樣的東西

function authCallback(request) {
  var service = getService();
  var authorized = service.handleCallback(request);
  var state = request.parameter.state;
  if (authorized) {
    if(state == getOldState(userID)){
      storeToken(userID, service.getAccessToken());
    }
    return HtmlService.createHtmlOutput('<h1>Success!</h1>');
  } else {
    return HtmlService.createHtmlOutput('Denied.');
  }
}

  1. 現在用戶 A 可以使用 Https 向 GAS 請求修改他的驅動器,並且 GAS 使用保存的訪問令牌控制用戶 A 的驅動器
  2. UserB 請求 authorizationUrl
  3. GAS 也將 authorizationUrl 返回給 UserB,他也可以訪問 GAS。
  4. GAS 還使用他的用戶 ID 保存用戶 B 的訪問令牌。
  5. 現在 GAS 可以使用用戶 ID 和已經保存的訪問令牌來控制用戶 A 和用戶 B 的驅動器。

可能嗎? 我知道訪問令牌會在一段時間后過期。 請幫我完成我的愛好項目

您可以使用PropertiesService class。

例子:

在腳本的doPost()中保存訪問令牌,並將令牌刷新到用戶特定的屬性中。

該腳本將能夠使用相同的PropertiesService獲取這些屬性。

進一步閱讀:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM