zoukankan      html  css  js  c++  java
  • session及其应用

    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

  • 相关阅读:
    [mac]macOS Big Sur大苏尔动态壁纸下载
    JAVA各种OOM代码样例及解决方法
    详解Flask上下文
    Python代码规范检测
    深入掌握K8S Pod
    Java中包装类Test类测试出错的解决方法(JUnit5)
    细说selenium的等待条件
    利用tox打造自动自动化测试框架
    JAVA实现BP神经网络算法
    Oracle游标简介与使用
  • 原文地址:https://www.cnblogs.com/lyraLee/p/12207292.html
Copyright © 2011-2022 走看看