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实现密码散列加密,更多内容欢迎关注之后的文章

 

posted @   云豹科技-苏凌霄  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2022-04-18 视频直播app源码,实现进度条的自增长和颜色渐变
2022-04-18 短视频直播系统,简单形势下的确定/取消弹窗按钮
2022-04-18 短视频直播源码,点击按钮,按钮有被点击反馈效果
点击右上角即可分享
微信分享提示