如何在不登录的情况下为每个用户存储不同的(随机和临时)后端数据?

How to store different (random & temp) backend data for each user, without login?

为每个用户保留小型后端数据的最简单方法是什么?

我正在开发一个程序,它将为每个用户随机选择一个单词字符串,我才刚刚开始决定如何构建它。尽管选择是随机的,但我希望它们是持久的——不一定是用户第二天回来,但至少在可能为 20 分钟的会话中。这在前端是完全微不足道的,但随机选择必须发生在 Node 后端(因为用户无法知道它是什么),并且在他们发出下一个请求时不能改变。出于这些目的,我们假设用户具有足够的技术素养,可以查看源代码或打开开发工具,但不担心有人入侵。

我已经知道如何在数据库中存储数据(Mongo 或 SQL),但这似乎是一个词的矫枉过正。我已经知道如何使用 user/password 或 OAuth 登录用户,但这又显得有点矫枉过正,因为数据并不是真正的隐私,不需要登录。而且,这对用户来说是额外的麻烦。我正在考虑使用 Firebase 对匿名用户进行身份验证,但我想知道我的后端是否有一种 simpler/faster 方法来识别我正在处理的是哪个低安全性用户,只是为了第一个词进行交互用户,以及第二个用户的不同词。

我应该使用 Firebase 匿名用户登录吗?有什么简单的我没有想到的吗?谢谢!

您可能正在寻找类似 Set-Cookie HTTP header 的内容。例如,如果您使用节点 'http' 模块:

var http = require('http')
var cookie = require('cookie') // npm install if you need to

// Server set up code
const server = http.createServer((request, response) => {
    //Gets called on each http request to your server

    var randomString = yourRandomStringGenerator();
    var cookies = cookie.parse(request.headers.cookie);
    if (cookies.myCookie) {
        // already there, do nothing
    } else {
        response.setHeader('Set-Cookie',`myCookie=${randomString}`)
    }
    // Your other server routing etc.
}

此 header 也接受 Max-AgeExpires 参数,如果您希望它们持续超过单个 session,但如果 Expires未设置则 cookie 自动成为 session cookie。请参阅 MDN

上有关 Set-Cookie 的文档