码迷,mamicode.com
首页 > 其他好文 > 详细

session及其应用

时间:2020-01-17 20:40:51      阅读:64      评论:0      收藏:0      [点我收藏+]

标签:name   余额   ssi   url   设置   htm   内存   span   create   

session是服务器端存储数据的方式。避免了存在客户端被用户修改数据的情况。它以cookie为基础。

1. session用法

session的使用需要以下条件:

1. 需要存储用户和对应信息的映射(可以存储在内存中或者数据库中redis/mongo)

2. 需要一个sessionId来表示当前服务器的信息

let http = require(‘http‘);
let querystring = require(‘querystring‘);
let uuid = require(‘uuid‘); //第三方库

// 本服务器的信息
let sessionId = ‘lyraInfo‘;
// 将用户-信息的映射关系存储在内存中
const session = {};
http.createServer(function(req, res) {
  if(req.url === ‘/toWash‘) {
    let cookies = querystring.parse(req.headers.cookie);
    let username = cookies[sessionId];
    if(username && session[username]) {// 已经访问过
      session[username].money -= 10;
      // 防止汉字乱码
      res.setHeader(‘Content-Type‘, ‘text/html;charset=utf-8‘);
      res.end(`您当前剩余额度是${session[username].money}`);
    } else {// 第一次访问;将唯一标志符通过从cookie返回客户端
      let cardId = uuid.v4();
      res.setHeader(‘Set-Cookie‘, `${sessionId}=${cardId}; httpOnly=true`);
      session[cardId] = {
        money: 100 //首次设置该cardId对应的money为100
      } 
      res.setHeader(‘Content-Type‘, ‘text/html;charset=utf-8‘);
      res.end(`您当前剩余额度是${session[cardId].money}`);
    }
  }
}).listen(3000);

2. session应用

用户登录session/jwt

session及其应用

标签:name   余额   ssi   url   设置   htm   内存   span   create   

原文地址:https://www.cnblogs.com/lyraLee/p/12207292.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!