现在在这个问题上花了几个小时 - 有没有办法在已部署的网络应用中向服务器端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;
}
答案 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);
}
}
以下是文档: