Node.js设置sessionid(登陆的校验)

    xiaoxiao2023-11-20  165

    配置环境

    "express-session": "^1.15.6", "session-file-store": "^1.2.0",

    在package.json中添加上面两句

    在app.js文件中声明

    //引用文件 var session = require('express-session'); var FileStore = require('session-file-store')(session); // 只要http请求有insurance就会创建session app.use('/insurance', session({ name: 'sessionid', store: new FileStore(),//数据持久化方式,这里表示本地文件存储 secret: 'sksdfiwieriweixdif22342slsdSsdfc.#sdfdfs*', resave: false, saveUninitialized: true, cookie: {path: '/', httpOnly: true}, }));

    在routes的接口方法中查看sessionid

    //判断是否存在sessionid router.post('/isLogin/initialize', function (req, res, next) { var reqArg = req.body; res.header("Content-Type", "application/json; charset=utf-8"); var a = req.headers.cookie; var flag = -2; a.split(";").forEach(item => { if (item.split("=")[0].indexOf("sessionid") != -1) { flag = 1; var json = { statusCode: 1, top: "获取成功", data: user.dataValues }; res.end(JSON.stringify(json)); } }); if (flag == -2) { var json = { statusCode: -2, data: '未登录' }; res.end(JSON.stringify(json)); } }); res.clearCookie("sessionid");//退出登录时清楚sessionid

    通过查看是否存在sessionid来判断是否有权限进行下一步的操作,一般sessionid的设置是在登陆成功后设置,退出登录后将其删掉

    这种方法一般用于一段时间内登陆后赋予权限,在这段时间都无需再次登陆,方便用户
    最新回复(0)