处理令牌的架构 (NodeJS) (MongoDB)
Architecture in handling Tokens (NodeJS) (MongoDB)
我想知道以下正确处理令牌的选项的优缺点:
选项A:
(在后端)api.login(用户)>>(使用 Passport 成功)>> createOrUpdateToken >> toSaveTokenInUserDocument >> return用户 >>(在前端)toSavetokenUserInFrontEnd(window.localStorage.setItem)
选项B:
(在后端)api.login(用户)>>(使用 Passport 成功)>> createOrUpdateToken >> toSaveTokenInTokenDocument >> return User&Token >> (In Front-end) toSavetokenUserInFrontEnd(window.localStorage.setItem)
什么是正确的选择?为什么?
听起来你问的主要是一个数据库问题:你应该将你的令牌存储在你的用户文档中吗?还是在单独的 Token 文档中?
这是我的想法:
如果您使用的是 NoSQL 数据库(我假设您是),您最好将令牌直接存储在用户文档中,因为这意味着您将能够避免昂贵的加入行动。
由于每个 API 请求都会使用令牌,因此每次都访问两个集合会占用大量数据库,而不是仅访问用户集合。
通常也是如此:任何需要经常访问的信息最有可能被非规范化以提高速度。
希望对您有所帮助!
我想知道以下正确处理令牌的选项的优缺点:
选项A:
(在后端)api.login(用户)>>(使用 Passport 成功)>> createOrUpdateToken >> toSaveTokenInUserDocument >> return用户 >>(在前端)toSavetokenUserInFrontEnd(window.localStorage.setItem)
选项B:
(在后端)api.login(用户)>>(使用 Passport 成功)>> createOrUpdateToken >> toSaveTokenInTokenDocument >> return User&Token >> (In Front-end) toSavetokenUserInFrontEnd(window.localStorage.setItem)
什么是正确的选择?为什么?
听起来你问的主要是一个数据库问题:你应该将你的令牌存储在你的用户文档中吗?还是在单独的 Token 文档中?
这是我的想法:
如果您使用的是 NoSQL 数据库(我假设您是),您最好将令牌直接存储在用户文档中,因为这意味着您将能够避免昂贵的加入行动。
由于每个 API 请求都会使用令牌,因此每次都访问两个集合会占用大量数据库,而不是仅访问用户集合。
通常也是如此:任何需要经常访问的信息最有可能被非规范化以提高速度。
希望对您有所帮助!