起因:http请求是无状态的(如何理解)
解决方案:
1、cookie+session
cookie:前端;session:服务器端
实现过程如下:
a、前端登录成功,后段会发布一个加密字符串(用户相关信息)给前端,( ⚠️ 自动在前端存cookie )
b、前端调用其他接口,前端保存起来,之后每次请求的时候,将加密字符串作为参数,传递给服务器端(⚠️ cookie自动传递 )
c、服务器端拿到字符串进行解密,根据权限进行验证,如果验证通过的话,就可以接着执行接口逻辑
需要插件:
cookie-parse: 解析cookie数据
express-session: https://www.npmjs.com/package/express-session
const cookieParse=require('cookie-parser') const session = require('express-session')
// seesion 整体配置 app.use(session({ secret: 'sjfsdkjflajf', //为了安全性的考虑设置secret属性 cookie: {maxAge: 60 * 1000*24*7 }, //设置过期时间7天 resave: true, // 即使 session 没有被修改,也保存 session 值,默认为 true saveUninitialized: false, //无论有没有session cookie,每次请求都设置个session cookie ,默认给个标示为 connect.sid }));
后端存session