app直播原始碼,Node.js實現密碼雜湊加密

zhibo系統開發發表於2023-04-18

app直播原始碼,Node.js實現密碼雜湊加密

1. 安裝所需的包:

npm i bcryptjs --save


2. 修改MongoDB中的模型:

// /models/AdminUser.js
 
const mongoose = require('mongoose')
// 定義模型的欄位
const schema = new mongoose.Schema({
    username: { //使用者名稱
        type: String,
        unique: true,
    },
    password: { //密碼,進行雜湊加密
        type: String,
        select: false, //讓密碼在介面中預設無法查詢到
        set(val) {
            return require('bcryptjs').hashSync(val, 10) //第一個引數是這個值,第二個引數是雜湊的加密指數
        },
    },
})
// 匯出mongoose模型
module.exports = mongoose.model('AdminUser', schema)


3. 實現登入功能:

# 用於做webtoken驗證
npm i jsonwebtoken
// /routes/admin/index.js
 
// module.exports匯出一個函式,引數接收函式物件,在裡面就可以用最外層的app
module.exports = app => {
 
    //登入
    app.post('/admin/api/login', async (req, res) => {
        const {
            username,
            password
        } = req.body
        //1、根據使用者名稱找使用者,查的時候把password欄位取出來
        const AdminUser = require('../../models/AdminUser')
        const user = await AdminUser.findOne({
            username: username
        }).select('+password')
        if (!user) {
            return res.status(422).send({
                message: '使用者不存在',
            })
        }
        //2、校驗密碼
        const isValid = require('bcryptjs').compareSync(password, user.password) //比較明文和密文是否匹配
        if (!isValid) {
            return res.status(422).send({
                message: '密碼錯誤',
            })
        }
        //3、返回token
        const jwt = require('jsonwebtoken')
        const token = jwt.sign({  //生成一個token
            id: user._id
        }, app.get('secret'))
        res.send({ //把token返回給客戶端
            token
        }) 
    })
 
}


 以上就是 app直播原始碼,Node.js實現密碼雜湊加密,更多內容歡迎關注之後的文章


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2946510/,如需轉載,請註明出處,否則將追究法律責任。

相關文章