处理令牌的体系结构(NodeJS)(MongoDB)

我想知道下列选项正确处理令牌的优缺点:

选项A:

(在后端)api.login(用户)>>(用Passport成功)>> createOrUpdateToken >> toSaveTokenIn UserDocument >>返回用户>>(在前端)toSavetokenUserInFrontEnd(window.localStorage.setItem)

选项B:

(在后端)api.login(用户)>>(用Passport成功)>> createOrUpdateToken >> toSaveTokenIn TokenDocument >>返回User&Token >>(在前端)toSavetokenUserInFrontEnd(window.localStorage.setItem)

什么是正确的select? 为什么?

这听起来像你要问的主要是一个数据库问题:你应该在你的用户文档中存储你的标记吗? 或者在一个单独的令牌文件里面?

这是我的想法:

如果你使用的是NoSQL数据库(我假设你是这样的),那么最好直接在用户文档中存储令牌,因为这意味着你可以避免昂贵的连接操作。

由于令牌将用于每个API请求,每次都击中两个集合,而不仅仅是一个用户集合,这将是相当密集的数据库。

一般情况也是如此:任何需要频繁访问的信息都应该以速度非规范化。

希望这可以帮助!