为每个用户保留小后端数据的最简单方法是什么?
我正在开发一个程序,它将为每个用户做一个随机选择,一个单字符串,我刚刚开始决定如何构建它。虽然选择是随机的,但我希望它们是持久的 - 不一定是第二天用户回来,但至少通过可能是20分钟的会话。这在前端完全是微不足道的,但是随机选择必须在Node后端发生(因为用户不知道它是什么),并且在他们发出下一个请求时不能改变。出于这些目的,我们假设一个用户具有足够的技术知识来查看源代码或开放式开发工具,但不关心有人黑客入侵。
我已经知道如何在数据库(Mongo或SQL)中存储数据,但这对于单个单词来说似乎有些过分。我已经知道如何使用用户/密码或OAuth登录用户,但这似乎有点过分,因为数据不是真正的私有,不应该要求登录。此外,这对用户来说也是一个额外的麻烦。我正在考虑使用Firebase对匿名用户进行身份验证,但我想知道我的后端是否有更简单/更快的方法来识别我正在处理的低安全性用户,只是为了与第一个用户的一个单词进行交互,和第二个用户的不同的词。
我应该使用Firebase匿名用户登录吗?有什么简单的我没想到的吗?谢谢!
答案 0 :(得分:1)
您可能正在寻找类似Set-Cookie
HTTP标头的内容。例如,如果您正在使用节点“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.
}
此标头还接受Max-Age
和Expires
参数,如果您希望它们超过单个会话,但如果未设置Expires
,则Cookie会自动成为会话曲奇饼。请参阅MDN
Set-Cookie
的文档