使用本地文件的 Web 身份验证

Web authentication with local file

我有一个基于 Web 的购物清单程序(clojure、ring、hiccup、friend 等)。它只有我和我妻子使用,我 运行 是家里一台机器上的服务器。 目前,我正在使用朋友进行身份验证并使用 cookie 进行会话存储。

我现在的想法是使用包含用户特定 UUID 的本地文件(在 PC、phone 和平板电脑上)。因此,当朋友请求凭据时,页面上的一个小 javascript 会发回此 UUID,将其与数据库中该用户的 UUID 进行比较,如果它们匹配,我们就可以了。

带有UUID的本地文件将由我在每台设备上手动复制到那里。这对我来说似乎是一个非常安全的设置,不需要用户进行任何登录过程。出于某种我还没有弄清楚的原因,我的 phone(三星 S8 和 chrome)在几分钟后删除了我的 cookie,即使我已将其设置为 10 年过期!我的平板电脑(三星 S2 和 chrome)和个人电脑(ubuntu 和 chrome)不这样做。

我尝试读取本地文件的所有方法都失败了,我 运行 没有想法。我在某处读到这是不可能的,因为出于安全原因必须进行用户交互。

有什么建议吗?

您可以使用 localStorage 来存储 UUID 并通过简单的形式加载它:

<input type="text" onchange="localStorage.setItem('UUID',this.value)">

并包括隐藏在某处或在通常没有人访问的页面上的表单 /inputuuid.html。