后台登录注册接口 部分代码

278 阅读1分钟

需要引入一系列第三方模块

const express = require('express')
const router = express.Router()
const db = require('../db')
const md5 = require('md5')
const jwt = require('jsonwebtoken')

router.use((req, res, next) => {
    let {
        username,
        password
    } = req.body
    if (!/^[a-zA-Z][0-9a-zA-Z]{1,9}$/.test(username)) {
        next('用户名输入2-10位,必须字母开头')
    } else if (!/^\S{6,12}$/.test(password)) {
        next('密码只能输入6-12位')
    } else {
        next()
    }
})

router.post('/reguser', (req, res) => {
    let {
        username,
        password
    } = req.body

    password = md5(password)

    db(`select * from user where username='${username}'`, (err, result) => {
        if (err) throw err
        if (result.length > 0) {
            res.send({
                status: 1,
                message: '用户已存在'
            })
        } else {
            db(`insert into user set username='${username}',password='${password}'`, (e, r) => {
                if (e) throw e
                res.send({
                    status: 0,
                    message: '注册成功',
                    data: r
                })
            })
        }
    })
})

router.post('/login', (req, res) => {
    let {
        username,
        password
    } = req.body

    password = md5(password)

    db(`select * from user where username='${username}' and password='${password}'`, (err, result) => {
        if (err) throw err
        if (result.length > 0) {
            let token = jwt.sign({
                id: result[0].id
            }, 'qwewerqwee', {
                expiresIn: '2h'
            })
            res.send({
                status: 0,
                message: '登陆成功',
                token: 'Bearer ' + token
            })
        } else {
            res.send({
                status: 1,
                message: '登陆失败'
            })
        }
    })
})

router.use((err, req, res, result) => {
    res.send({
        status: 1,
        message: err
    })
})


module.exports = router