我想了解以下正确处理 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/