我是NodeJS开发的初学者,在进行身份验证时,我看到一些人直接在注册控制器函数中加密密码,而一些人使用在Mongoose的SAVE方法之前触发的中间件来加密密码. 我真的搞不懂两种做法的区别. 谁能告诉我最好的做法是什么?为什么?

我通常在注册控制器中加密密码

推荐答案

将其设置为存储库级别可确保不会以纯格式保存密码(这通常是您可能面临的最严重的安全风险).

将来,您可以添加多种方式来创建和保存新用户或更改他们的密码.将其设置为控制器级别会增加您不会注意到未在存储库级进行加密的风险,并且您可以以纯格式保存该密码.

也就是说,您添加了使用密码创建新用户的功能,2周后您添加了重置密码的功能-这是不同的控制器.

Node.js相关问答推荐

MongoServelSelection错误:服务器 Select 在30000 ms后超时

mongoose 模型填充问题

我的Node.js应用程序没有将Mongoose方法findByIdAndDelete作为函数进行检测

EJS ForEach循环标记

npm错误;无法解析依赖项:npm ERR!对等webpack@;5.x.x;来自@webpack-cli/serve@2.0.5";

在函数上执行 toString 的Typescript 会产生奇怪的字符 (path_1, (0, Promise.writeFile))

Redis Typescript 删除方法类型转换

在对象数组中的数组中嵌套 $lookup - Mongodb

如何配置 Nginx React 和 Express

错误:0308010C:try 通过 Github 推送部署到 firebase 托管时出现数字

Node.js |如何在微服务之间转发标头?

Discord.js V14 interaction.editReply 给出了一个无效的 webhook 令牌错误

表达限制资源属于特定用户的优雅方式

如何在 mongoDB 中进行全动态搜索?

如何申请在NextJS上下载文件的许可?

node_modules 中 .bin 文件夹的用途是什么?

我可以向NPM添加调试脚本吗?

使用restify时如何支持cors

Node.js 中空函数的简写

deno vs ts-node:有什么区别