在Google Script Web应用中添加网址参数

时间:2017-05-15 01:51:11

标签: javascript google-apps-script

现在在这个问题上花了几个小时 - 有没有办法在已部署的网络应用中向服务器端Google脚本的网址添加参数,这对任何人(不仅是Google帐户)都是开放的?

我想存储用户登录时的密钥,这样每次刷新浏览器时用户都不必再次登录。说我当前的网址是: https://redis.io/topics/persistence

我可以在某种程度上在登录时添加GAS功能,以便将URL修改为类似的功能 https://script.google.com/a/macros.../exec

因此,如果doGet(e)函数再次运行(网站重新加载),并且临时生成的密钥与我的数据库中的用户名匹配,则用户将被定向到页面B,如果密钥不匹配(或已在时间触发器上删除)用户将被定向到页面A(登录页面)?

我还试图找到将东西放在本地缓存中的方法,但不能解决这个问题.Google CacheService似乎只将密钥存储在我身上而不是客户端。

我想要实现的目标:

  function doGet(e){
    var name = e.parameter.name, output;
    if(name === undefined){
      /*/
      Add parameter name=john to URL.. 
      obviously what I intend to is to create a HtmlOutput on a login-page
      and then in a later (function login()) add this parameter there and not
      here, but if anyone can work this out for me I got the solution
     /*/
     } else {
     output = HtmlService.createHtmlOutput('Welcome back ' + name);
     }
    return output;
    }

1 个答案:

答案 0 :(得分:0)

这是一个可能的解决方案,它根据提供的URL参数将用户名保存到PropertiesService,如果已存在,则获取密钥。

function doGet(e) {
  //use the session service to get the active users email
  var currentUser = e.parameter.name;

  var key = e.parameter.key;

  var props = PropertiesService.getUserProperties().getProperty(currentUser);

  if(props) {
    //do something with the key
  } else {
    //if there is no username key in the properties service, then add it
    PropertiesService.getUserProperties().setProperty(currentUser, key);
  }
}

以下是文档:

https://developers.google.com/apps-script/reference/properties/properties-service#getUserProperties()