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

  • 相关阅读:
    hust 1260 Dominos && hust 1516 Dominos
    poj 1149 PIGS
    hust 1230 beautiful
    poj 1469 COURSES
    hdu 3062 Party
    hust 1027 Enemy Target!
    hdu 3415 Max Sum of Max-K-sub-sequence
    简单的实现轮播代码
    window.parent与window.openner区别介绍
    plupload使用指南(转)
  • 原文地址:https://www.cnblogs.com/lyraLee/p/12207292.html
Copyright © 2011-2022 走看看