1.身份验证 token
JWT
用户登录 服务器端产生一个token (加密字符串) 发送给前端
前端将token 进行保存
前端发起数据请求的时候携带token
服务端 验证token 是否合法 如果合法继续操作 不合法终止操作
token 的使用场景 无状态请求 保持用户的登录状态 第三方登录(token+auth2.0)
非对称加密 通过私钥产生token 通过公钥解密token
// 1.产生公钥和私钥
// 产生私钥 openssl genrsa -out ./private_key.pem 1024 1024 代表私钥长度
// 产生公钥 openssl rsa -in ./private_key.pem -pubout -out ./public_key.pem
let private_key=fs.readFileSync(path.join(__dirname,’./private_key.pem’))
let public_key=fs.readFileSync(path.join(_dirname,’./public_key.pem’))
var token = jwt.sign(palyload, private_key,{ algorithm: ‘RS256’});
console.log(token)
let token='eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IueUqOaIt2lkIiwiaWF0IjoxNTUxMTUyNzk1fQ.TI_xDBvObHGAH7EV40WWpQemm5nx077Gdjq-pzDx0NWN5YFd40S7XcLmgoDdYscLM7vMOP0c7z1l83JUixqk7IBjBCU-tMNo_G5-LGkQjV3vDYq_3TkXTl42lgmFA-EBey7W6W1PgPfYlowyHAyp-07hXaMRevgVkXm2lPEFXo’
var decoded = jwt.verify(token, public_key);
const jwt=require(‘jsonwebtoken’)
const scrict=‘sdjfksdjflajflasjflasjflksf’
function creatToken(palyload){
// 产生token
palyload.ctime=Date.now()
return jwt.sign(palyload,scrict)
}
function checkToken(token){
return new Promise((resovle,reject)=>{
jwt.verify(token,scrict,(err,data)=>{
if(err){ reject(‘token 验证失败’)}
resovle(data)
})
})
}
module.exports={
creatToken,checkToken
}
Cookie+Session
const cookieParse=require(‘cookie-parser’)
const session = require(‘express-session’)
app.use(session({
secret: ‘hubwizApp’, //为了安全性的考虑设置secret属性
cookie: {maxAge: 60 * 1000 * 60 * 24 }, //设置过期时间
resave: true, // 即使 session 没有被修改,也保存 session 值,默认为 true
saveUninitialized: false, //无论有没有session cookie,每次请求都设置个session cookie ,默认给个标示为 connect.sid
}));
登录成功
req.session.sign = true;
req.session.name = us;
需要验证的接口判断是否存在
注销session
app.get(’/out’, function(req, res){
req.session.destroy();
res.redirect(’/’);
})
2.自动化测试 mocha
Mocha(‘摩卡’),诞生于2011年,现在比较流行的JavaSscript测试框架之一,可以运行于Node环境和浏览器环境
测试框架:可以运行测试的工具。通过他,可以为JavaScript应用 添加测试,从而保证代码质量
安装配置
使用npm 全局安装
$ npm install --global mocha
项目依赖 局部安装
$ npm isntall mocha
基本语法
assert 断言
断言库:chai
should 风格断言
expect 风格断言
全局安装chai
npm install chai -g
案例使用
递归执行
$ mocha test --recursive