码迷,mamicode.com
首页 > 其他好文 > 详细

4.加密与token(node+express)

时间:2019-02-13 10:43:43      阅读:444      评论:0      收藏:0      [点我收藏+]

标签:菜单   expires   pos   jwt   过期   app   用户信息   inf   object   

一. 敏感数据加密
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 }),
        })
    })

4.加密与token(node+express)

标签:菜单   expires   pos   jwt   过期   app   用户信息   inf   object   

原文地址:https://www.cnblogs.com/wangrui38/p/10368388.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!