- 執行npm install bcryptjs --save安裝依賴包,使用bcryptjs進行加密
- user.js api中導入bcryptjs
const Router = require('koa-router')
const {RegisterValidator} = require('../../validators/validator')
const {User} = require('../../models/user')
const bcrypt = require('bcryptjs')
const router = new Router({
prefix: '/v1/user'
})
// 註冊 新增
router.post('/register', async (ctx)=>{
// 思維路徑
// 接收參數, validator校驗
// email, password1,password2,nickname
const v = await new RegisterValidator().validate(ctx)
const salt = bcrypt.genSaltSync(10)
const psw = bcrypt.hashSync(v.get('body.password1'), salt)
// 獲取到傳遞的數據
const user = {
nickname: v.get('body.nickname'),
password: psw,
email: v.get('body.email')
}
// 關聯到數據庫
const r = await User.create(user)
})
module.exports = router
使用模型改寫加密方法
user模型文件改寫
const bcrypt = require('bcryptjs')
password: {
type: Sequelize.STRING,
set(val){
const salt = bcrypt.genSaltSync(10)
const psw = bcrypt.hashSync(val, salt)
this.setDataValue('password', psw)
}
}
user.js api文件保持原先的
const Router = require('koa-router')
const {RegisterValidator} = require('../../validators/validator')
const {User} = require('../../models/user')
const router = new Router({
prefix: '/v1/user'
})
// 註冊 新增
router.post('/register', async (ctx)=>{
// 思維路徑
// 接收參數, validator校驗
// email, password1,password2,nickname
const v = await new RegisterValidator().validate(ctx)
// 獲取到傳遞的數據
const user = {
nickname: v.get('body.nickname'),
password: v.get('body.password1'),
email: v.get('body.email')
}
// 關聯到數據庫
const r = await User.create(user)
})
module.exports = router