一. 敏感数据加密
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)的更多相关文章

  1. 使用node+express+mongodb实现用户注册、登录和验证功能

    无论是手机端还是pc端,几乎都包含登录注册方面功能,今天就使用node+express+mongodb实现一套登录注册功能,这里需要自己去安装MongoDB环境,如果没有安装可以看这篇关于MongoD ...

  2. 【原】小玩node+express爬虫-2

    上周写了一个node+experss的爬虫小入门.今天继续来学习一下,写一个爬虫2.0版本. 这次我们不再爬博客园了,咋玩点新的,爬爬电影天堂.因为每个周末都会在电影天堂下载一部电影来看看. talk ...

  3. Node+Express+node-mysql 实战于演习 全套mysql(增删改查)

    最近这段时间研究Node感觉不错,自己做了一个增删改查,虽然有些简陋,但是思想是想通的,其实所有项目都是增删改查,有助于初学者快速掌握Node 首先 本实例展示的是基于Node+Express+nod ...

  4. Node Express 4.0 安装

    前言 今天想要用nodejs 写个后台服务,很久之前看过node express 框架,可真当向下手安装的时候,发现好多命令都不记得了.写完后台服务,没事了,总结了下安装过程,记录一下,以便以后查阅方 ...

  5. node express

    在某QQ群里,发现大家都在搞node,为了不被out,这周主要研究了一下,还挺高大上. 参考了下资料,适合初学者学习. Node和NPM的安装够便捷了,不细说...有几点基础顺手提一下: 安装命令中的 ...

  6. Webpact打包React后端Node+Express

    Webpact打包React后端Node+Express 前言 React官方推荐用Browserify或者Webpack 来开发React组件. Webpack 是什么?是德国开发者 Tobias ...

  7. Node+Express+MongoDB + Socket.io搭建实时聊天应用

    Node+Express+MongoDB + Socket.io搭建实时聊天应用 前言 本来开始写博客的时候只是想写一下关于MongoDB的使用总结的,后来觉得还不如干脆写一个node项目实战教程实战 ...

  8. 基于react全家桶+antd-design+webpack2+node+express+mongodb开发的前后台博客系统

    很久没更新博客,最近也有点忙,然后业余时间搞了一个比较完整基于react全家桶+antd-design+webpack2+node+express+mongodb开发的前后台博客系统的流程系统,希望对 ...

  9. Node Express 初探

    一如既往,先上一张图 Express 基于 Node.js 平台,快速.开放.极简的 web 开发框架. 关于Express更多相关知识请链接至官网http://www.expressjs.com.c ...

  10. 零基础实现node+express个性化聊天室

    本篇文章使用node+express+jquery写一个个性化聊天室,一起来get一下~(源码地址见文章末尾) 效果图 项目结构 实现功能 登录检测 系统自动提示用户状态(进入/离开) 显示在线用户 ...

随机推荐

  1. 新手必备 | 史上最全的PyTorch学习资源汇总

    目录: PyTorch学习教程.手册 PyTorch视频教程 PyTorch项目资源      - NLP&PyTorch实战      - CV&PyTorch实战 PyTorch论 ...

  2. coding++:快速构建 kindeditor 富文本编辑器(一)

    此案例 demo 为 SpringBoot 开发 1.官网下载相关资源包:http://kindeditor.net/down.php 2.编写页面(引入相关JS) <!DOCTYPE html ...

  3. 使用docsify 写开源文档

    使用docsify 写开源文档 官网:https://docsify.js.org/#/ docsify 是一个动态生成文档网站的工具.不同于 GitBook.Hexo 的地方是它不会生成将 .md ...

  4. Spring钩子接口Aware

    前言 我们在编写代码的时候,有的时候想要使用Spring的底层组件,类似于 ApplicationContext, BeanFactory等等 那我们实现Spring提供的钩子方法xxxAware.在 ...

  5. 在docker中部署redis主从配置

    环境说明: 阿里云服务器 Ubuntu 16.04 docker 1.拉取Redis镜像 docker pull redis 2.配置Redis启动配置文件,此处我创建一个专用目录,存放Redis相关 ...

  6. Zabbix报警机制,Zabbix进阶操作,监控案例

                                                                                                        ...

  7. 在tap的碎片上与活动进行绑定实现点击事件(日期时间选择以及按钮跳转时间)

    主要是掌握怎样在Fragment类型的.java文件中实现对于文本框或者按钮点击事件的触发操作. 相应的出发时间都是之前的代码.主要是怎样在Fragment怎样实现相应的操作主要是对于getActiv ...

  8. 数据结构和算法(Golang实现)(30)查找算法-2-3-4树和普通红黑树

    文章首发于 阅读更友好的GitBook. 2-3-4树和普通红黑树 某些教程不区分普通红黑树和左倾红黑树的区别,直接将左倾红黑树拿来教学,并且称其为红黑树,因为左倾红黑树与普通的红黑树相比,实现起来较 ...

  9. Vue 实战项目: 硅谷外卖(1)

    第 1 章: 准备 1.1. 项目描述 1) 此项目为外卖 WebApp(SPA) 2) 包括商家, 商品, 购物车, 用户等多个子模块 3) 使用 Vue 全家桶+ES6+Webpack 等前端最新 ...

  10. Python 1基础语法四(数字类型、输入输出汇总和命令行参数)

    一.数字(Number)类型 python中数字有四种类型:整数.布尔型.浮点数和复数. int (整数), 如 1, 只有一种整数类型 int,表示为长整型,没有 python2 中的 Long. ...