node+express+jwt驗證+加密
阿新 • • 發佈:2021-12-10
var express = require('express'); var router = express.Router(); const Users = require('../models/users.js') const bcrypt = require("bcryptjs") const jwt = require("jsonwebtoken") process.env.SECRET_KEY = "secret" /* GET users listing. */ router.get('/', (req, res, next) => { res.json({ code: 1, data: "res", msg: "成功" }) }); // 註冊 router.post('/register', (req, res, next) => { // console.log(req.body) const now = new Date() const userData = { name: req.body.name, password: req.body.password, age: 18, } // cun Users.findOne({ where: { name: userData.name } }).then((user) => { console.log('傳遞的資料', userData) if (!user) { // 加密 bcrypt.hash(req.body.password, 10, (err, hash) => { userData.password = hash Users.create(userData).then(user => { console.log('成功') res.json({ status: user.name + "註冊成功" }) }).catch(err => { res.send("error" + err) }) }) } else { console.log(user + '已經註冊') res.json({ status: user.name + "已經註冊了" }) } }) // console.log('ends') }), // 登入 router.post("/login", (req, res) => { console.log(req.body) Users.findOne({where:{name:req.body.name}}).then(user=>{ // 查詢使用者 if(user){ if(bcrypt.compareSync(req.body.password,user.password)){ console.log("登入成功") let token = jwt.sign(user.toJSON(),process.env.SECRET_KEY,{ expiresIn:1440 }) // res.send("登入成功") res.json({msg:"登入成功",token}) }else{ console.log("密碼錯誤") res.send("密碼不正確") } }else{ console.log("未找到使用者錯誤") res.status(400).json({error:"使用者不存在"}) } }) .catch(err => res.send("error22" + err)) }) // end module.exports = router;