Http无状态协议,只能在同一个网站(包括多个页面)下获取,存储在客户端本地的一段信息,帮助咱们存储信息获取信息。可是一样有风险:咱们本身在浏览器上能够操做或者设置Cookie。web
const express = require('express') const cookieParser = require('cookie-parser') const app = express() app.use(cookieParser()) app.get('/', (req,res)=>{ res.send('欢迎' + req.cookies.username); // 若是有username cookie则显示username,不然显示undefined }) app.get('/login', (req,res)=>{ let username = req.query.username; res.cookie('username',username,{maxAge:99999, httpOnly:true}); // maxAge:cookie的有效期;httpOnly设置为true,能够防止XSS攻击,只能被web serve访问,不能经过document.cookie获取 res.send('登陆成功'); }) app.listen(80);
session是基于cookie实现,关闭浏览器就会消失。session会经过cookie保存一个sessionID在客户端,若是浏览器对cookie禁用了,那么session天然也就没办法应用了。express
const express = require('express') const session = require('express-session') const app = express() app.use(session({ secret: '加密名字', resave: false, // 是否每次请求都从新设置session saveUninitialized: true // 不管有没有session,每次都请求设置一个session })) app.get('/',(req,res)=>{ if(req.session.username){ res.send('欢迎'+req.session.username) }else{ res.send('<a href="/login?username=张三">请登陆</a>') } }) app.get('/login',(req,res)=>{ req.session.username = req.query.username res.send('succ') }) app.listen(80)
const crypto = require('crypto'); function md5(pwd){ let md5 = crypto.createHash('md5'); let password = md5.update(pwd).digest('base64'); return password; } console.log(md5('12345678')); // 即便不一样用户密码同样 console.log(md5('12345678')+parseInt(Math.random()*10000));