【问题标题】:How to generate and where to store unique id for client?如何为客户生成和存储唯一 ID?
【发布时间】:2016-06-06 19:04:08
【问题描述】:

我有带有form 的完全静态网站(没有和后端)。当用户提交我的表单时,我向Google Apps Script 发出 jsonp 请求。我的 GAS 处理请求并将表单数据保存到具有以下结构的 goggle 电子表格:

      Name      |     Age     |     City
     ------------------------------------
      Eric      |      23     |     NYC

现在我需要为每个用户存储唯一的 id 并像这样存储:

      ClientId  |     Name      |     Age     |     City
     ---------------------------------------------------
      dhs3kwhe  |     Eric      |      23     |     NYC

我对 clientId 格式没有任何限制,但唯一的一点是 clientId 对于任何客户端都是唯一的。

这是类似的会话 ID,使用它会很酷,但因为我没有后端,所以无法生成这个。

解决我的问题的最佳方法是什么?

编辑:

让我稍微解释一下我的问题。我不仅需要生成可以使用某些算法生成的唯一 ID。我需要为每个用户生成clientId。说User A 填写并提交表格,我们会为他生成clientId,比如jshhsd3。下次User A 填写并提交表单时,他必须获得相同的 ID jshhsd3

另一个User B 在提交我的表单时将拥有自己的clientId

【问题讨论】:

  • 似乎其他人也遇到了和你一样的问题。我链接了上面的答案之一。一种可能的选择是将行号附加到您通过表单传递的文本中。接受的答案概述了该解决方案。
  • 另一个选项,取决于您的应用程序的容量,使用 UTC 时间戳作为 ID。
  • 我已经更新了我的答案来澄清这个问题
  • 我明白了。不确定你的实现,但你看过getactiveuser()吗? developers.google.com/apps-script/reference/base/…

标签: html cookies google-apps-script uniqueidentifier


【解决方案1】:

Session.getActiveUser().getEmail() 将为您提供每个用户唯一的谷歌电子邮件地址。

要存储每个 ID?试试:

var userId = Session.getActiveUser().getEmail();
var scriptProperties = PropertiesService.getScriptProperties();    
scriptProperties.setProperty('username', userId);

【讨论】:

  • 不幸的是,这对我不起作用,因为通过 JSONP 请求执行我的脚本的用户可能无法登录 Google 帐户。所以我的脚本也可供匿名用户使用
猜你喜欢
  • 1970-01-01
  • 2017-01-26
  • 1970-01-01
  • 2015-03-03
  • 2018-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多