node.js - 处理 token 的架构 (NodeJS) (MongoDB)

标签 node.js mongodb session authentication token

我想了解以下正确处理 token 的选项的优缺点:

选项A:

(后端) api.login(user) >> (Passport 成功) >> createOrUpdateToken >> toSaveTokenInUserDocument>> return User >> (前端) toSavetokenUserInFrontEnd(window.localStorage.setItem)

选项B:

(后端) api.login(user) >> (Passport 成功) >> createOrUpdateToken >> toSaveTokenInTokenDocument>> return User&Token >> (前端) toSavetokenUserInFrontEnd(window.localStorage.setItem)

什么是正确的选择?为什么?

最佳答案

听起来您要问的主要是一个数据库问题:您应该将 token 存储在用户文档中吗?或者在单独的 token 文档内部?

这是我的想法:

如果您使用的是 NoSQL 数据库(我假设您是这样),您最好将 token 直接存储在用户文档中,因为这意味着您将能够避免昂贵的联接操作。

由于 token 将在每个 API 请求中使用,因此每次访问这两个集合(而不是仅访问 User 集合)将非常耗费数据库资源。

一般情况下也是如此:任何需要频繁访问的信息很可能都应该进行非规范化以提高速度。

希望这有帮助!

关于node.js - 处理 token 的架构 (NodeJS) (MongoDB),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27989526/

相关文章:

php - PHP如何检测session_start()是否被调用?

node.js - 了解 Node ReferenceError转储

node.js - 如何在nodejs的服务器端存储日期时间?

html - Cheerio 将单引号更改为双引号

node.js - 在 mongoose (mongodb) 中设置集合属性的到期时间

regex - Mongodb - 子文档键的正则表达式匹配

php - 将值从一个 PHP session 传递到另一个 PHP session

c# - 如何区分浏览器多个标签页之间的session

javascript - 尝试将数据放入 MongoDB 时无法读取未定义的属性 'insert'

node.js - Nodemon安装错误问题