Node.js实战登录接⼝(笔记)
安装 jsonwebtoken 加密⽣成token
npm install jsonwebtoken -S
PWD:'DENGLIWEN',  //密码密钥
TOKEN_KEY:'WOAINI',//TOKEN密钥
TIME:60*60*24 //过期时间
}
var express = require('express');
var router = express.Router();
//引⼊query⽅法
const query = require("../db/index")
//引⼊密钥
const { PWD,TOKEN_KEY,TIME } = require('../utils/contant')
//引⼊加密⽅法
const { md5 } = require("../utils/index");
const { Router } = require('express');
const jwt = require("jsonwebtoken")
/* 注册接⼝ */
router.post('/register', async(req, res, next)=> {
//获取前端发送的参数
let {username,password,nickname} = req.body
/
/根据username 账号去数据库查是否存在
try{let user= await query('select * from user where username  =  ?',[username])
if(!user || user.length==0){
//密码和密钥通过拼接
password=md5(`${password}${PWD}`)
//插⼊数据
await query('insert into user(username,password,nickname) value(?,?,?)',[username,password,nickname])    res.send({code:0,msg:'注册成功'})
}else{
res.send({code:-1,msg:'该账号已存在'})
}
}catch(e){
console.log(e)
next(e)
}
});
//登录接⼝
router.post('/login',async(req,res,next)=>{
//获取前端传过来的参数
let {username,password} = req.body
password=md5(`${password}${PWD}`)
try{
//和数据库对⽐js获取json的key和value
let user = await query('select * from user where username = ? and password = ?',[username,password]);    if(!user || user.length==0){
res.send({code:-1,msg:'账号或者密码错误'})
}else{  //如果正确
//给password添加密钥进⾏拼接和数据库
//创建token  jwt.sign⽅法第⼀个参数可以存储信息 ,第⼆个参数存储token密钥第三个是token过期时间
let token = jwt.sign({username},TOKEN_KEY,{expiresIn:TIME})
res.send({code:0,msg:'登录成功',token:token})
}
}catch(e){
console.log(e)
}
})

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。