zoukankan      html  css  js  c++  java
  • node+express+jwt验证+加密

    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;
    
  • 相关阅读:
    Kubernetes日常维护命令
    4-docker的三要素
    3-docker的安装
    2-docker介绍
    1-为什么要使用docker
    块存储、文件存储、对象存储意义及差异
    ceph分布式存储的搭建
    YAML入门:以创建一个Kubernetes deployment为例
    Zabbix通过SQL语句从数据库获取数据说明
    图解HTTP--03--http报文内的信息
  • 原文地址:https://www.cnblogs.com/caoxueyang/p/15670509.html
Copyright © 2011-2022 走看看