zoukankan      html  css  js  c++  java
  • 4.加密与token(node+express)

    一. 敏感数据加密
    1.安装并引入中间件
        npm install utility
        const utils = require('utility')
    2.加密方法
        function md5Pwd(pwd) {
            const salt = 'sensetime_is_good_5589x321yza67.!@#IUHJh~~'
            return utils.md5(utils.md5(pwd + salt))
        }
    3.登录注册均调用 md5Pwd()
        例如:
            User.findOne({
                user,
                pwd: md5Pwd(pwd)
            }

    二. Token
    1.安装并引入中间件
        npm install express-jwt
        npm install jsonwebtoken
        const expressJWT = require('express-jwt')
        const jwt = require('jsonwebtoken')
    2.设置API白名单
        const expressJWT = require('express-jwt')
        const secretOrPrivateKey = "SENSETIMEencipherment 1895@#$%^&*_" // 密钥
        app.use(expressJWT({
            secret: secretOrPrivateKey
        }).unless({
            path: ['/user/login','/user/register'] //白名单
        }))
    3.验证token
        app.use(function(err, req, res, next) {
            if (err.name === 'UnauthorizedError') {
                res.status(401)
                return res.json({
                    code: -1,
                    message: 'token已过期'
                })
            }
            if (err.name === 'TokenExpiredError') {
                res.status(401)
                return res.json({
                    code: -2,
                    message: '没有token'
                })
            }
        })
    4.获取token
        Router.post('/login', function(req, res) {
            // ... 这里写查询数据库的代码

            /*
            * 登录成功后返回的数据:
            * username用户名,String ,
            * userinfo用户信息,Object ,
            * authority菜单权限,Array
            **/
            res.json({
                result: 'ok',
                data:{ userinfo, authority},
                token: jwt.sign( { name: username }, secretOrPrivateKey, { expiresIn: 60 * 60 * 24 * 7 }),
            })
        })

  • 相关阅读:
    从函数作用域和块级作用域看javascript的作用域链
    基于vue实现一个简单的MVVM框架(源码分析)
    发布-订阅模式
    希尔排序
    直接插入排序
    选择排序
    React Fiber源码分析 第三篇(异步状态)
    React Fiber源码分析 第二篇(同步模式)
    React Fiber源码分析 第一篇
    数据结构 之 树总结
  • 原文地址:https://www.cnblogs.com/wangrui38/p/10368388.html
Copyright © 2011-2022 走看看