app直播源码,Node.js实现密码散列加密
app直播源码,Node.js实现密码散列加密
1. 安装所需的包:
1 | <br>npm i bcryptjs --save |
2. 修改MongoDB中的模型:
1 | <br> // /models/AdminUser.js<br> <br>const mongoose = require('mongoose')<br>// 定义模型的字段<br>const schema = new mongoose.Schema({<br> username: { //用户名<br> type: String,<br> unique: true,<br> },<br> password: { //密码,进行散列加密<br> type: String,<br> select: false, //让密码在界面中默认无法查询到<br> set(val) {<br> return require('bcryptjs').hashSync(val, 10) //第一个参数是这个值,第二个参数是散列的加密指数<br> },<br> },<br>})<br>// 导出mongoose模型<br>module.exports = mongoose.model('AdminUser', schema) |
3. 实现登录功能:
1 | <br># 用于做webtoken验证<br>npm i jsonwebtoken<br> // /routes/admin/index.js<br> <br>// module.exports导出一个函数,参数接收函数对象,在里面就可以用最外层的app<br>module.exports = app => {<br> <br> //登录<br> app.post('/admin/api/login', async (req, res) => {<br> const {<br> username,<br> password<br> } = req.body<br> //1、根据用户名找用户,查的时候把password字段取出来<br> const AdminUser = require('../../models/AdminUser')<br> const user = await AdminUser.findOne({<br> username: username<br> }).select('+password')<br> if (!user) {<br> return res.status(422).send({<br> message: '用户不存在',<br> })<br> }<br> //2、校验密码<br> const isValid = require('bcryptjs').compareSync(password, user.password) //比较明文和密文是否匹配<br> if (!isValid) {<br> return res.status(422).send({<br> message: '密码错误',<br> })<br> }<br> //3、返回token<br> const jwt = require('jsonwebtoken')<br> const token = jwt.sign({ //生成一个token<br> id: user._id<br> }, app.get('secret'))<br> res.send({ //把token返回给客户端<br> token<br> }) <br> })<br> <br>} |
以上就是 app直播源码,Node.js实现密码散列加密,更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2022-04-18 视频直播app源码,实现进度条的自增长和颜色渐变
2022-04-18 短视频直播系统,简单形势下的确定/取消弹窗按钮
2022-04-18 短视频直播源码,点击按钮,按钮有被点击反馈效果