我想知道以下选项的优缺点来正确处理令牌:
选项A:
(在后端)api.login(用户)>> (使用Passport成功)>> createOrUpdateToken>> toSaveTokenIn UserDocument >>返回用户>> (在前端)toSavetokenUserInFrontEnd(window.localStorage.setItem)
选项B:
(在后端)api.login(用户)>> (使用Passport成功)>> createOrUpdateToken>> toSaveTokenIn TokenDocument >>返回用户和标记>> (在前端)toSavetokenUserInFrontEnd(window.localStorage.setItem)
什么是正确的选择?为什么?
答案 0 :(得分:1)
听起来你问的主要是数据库问题:你应该在你的用户文档中存储你的令牌吗?或者在单独的令牌文档中?
这是我的想法:
如果您正在使用NoSQL数据库(我假设您是这样),您可能最好直接将令牌存储在用户文档中,因为这意味着您将能够避免昂贵的连接操作
由于令牌将在每个API请求中使用,因此每次访问两个集合都会占用大量数据,而不仅仅是用户集合。
一般情况也是如此:任何需要频繁访问的信息都应该非常规范化以提高速度。
希望这有帮助!