设置cookie,读取cookie案例

const express = require("express");
const app = express();
const port = 3000;
const cookieParser = require("cookie-parser");
app.use(cookieParser("test"));
// 设置cookie
app.get("/set", function(req, res) {
  res.cookie("name", "王金龙", { maxAge: 1000 * 5 });
  res.cookie("name2", "张三", { signed: true });
  res.send("cookie设置成功");
});
// 获取cookie
app.get("/get", function(req, res) {
  // 没有设置签名可以使用 cookies访问cookie
  res.send(req.cookies);
  // 设置签名之后就需要使用 signedCookies访问cookie
  console.log(JSON.stringify(req.signedCookies));
});
app.listen(port, () => console.log("http://127.0.0.1:3000"));

 

会话技术

cookie

cookie-parser

作用:方便操作客户端中的cookie值。

安装

cookie-parser第三方cookie操作模块

npm install cookie-parser --save

引入

const cookieParser = require('cookie-parser');
app.use(cookieParser('123456')); //使用cookie中间件,传入签名123456进行加密

设置cookie,需要设置signed签名

res.cookies('key','value',option)

其中option要求是要json格式:有以下选项

  • domain: 域名。设置子域名(二级域名)是否可以访问cookie。 例:domain:'.主域名' name=value:键值对,可以设置要保存的 Key/Value,注意这里的 name 不能和其他属性项的名字一样

  • expires: 过期时间(秒),在设置的某个时间点后该 Cookie 就会失效,如 expires=Wednesday, 09-Nov-99 23:12:40 GMT

  • maxAge: 最大失效时间(毫秒),设置在多少后失效

  • secure: 当 secure 值为 true 时, cookie 在 HTTP 中是无效,在 HTTPS 中才有效

  • path: 表示 cookie 影响到的路由,如 path=/。如果路径不能匹配时,浏览器则不发送这个 Cookie

  • httpOnly:默认为false,建议设置为true, 客户端将无法通过document.cookie读取到 COOKIE 信息,可防止 XSS 攻击产生

  • signed: 表示是否签名(加密) cookie, 设为 true 会对这个 cookie 签名,这样就需要用res.signedCookies 访问它,前提需要设置上面中间件app.use传参 。未签名则用 res.cookies 访问

  • 被篡改的签名 cookie 会被服务器拒绝,并且 cookie值会重置为它的原始值

  res.cookie('cart', { items: [1,2,3] }, { maxAge: 10000*4,signed:true,httpOnly:true });
  res.cookie('username', "caae", { maxAge: 10000*2,signed:true});
  res.cookie('age', "大白",{ maxAge: 10000*3,signed:true }); 

获取cookie

    console.log(req.signedCookies);
    console.log(req.signedCookies.cart);
    console.log(req.signedCookies.username);
    console.log(req.signedCookies.age);

删除cookie

res.cookie('username', '大白', { maxAge:0 });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用 Flask 框架实现 cookie 的示例代码: ```python from flask import Flask, render_template, request, make_response app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') @app.route('/setcookie', methods=['POST']) def setcookie(): if request.method == 'POST': user = request.form['name'] resp = make_response(render_template('readcookie.html')) resp.set_cookie('userID', user) return resp @app.route('/getcookie') def getcookie(): name = request.cookies.get('userID') return '<h1>Welcome ' + name + '!</h1>' if __name__ == '__main__': app.run(debug=True) ``` 在上述代码中,我们通过 `make_response()` 方法创建一个响应对象,并通过调用 `resp.set_cookie()` 方法来设置 cookie。然后在 `getcookie()` 视图函数中,我们使用 `request.cookies.get()` 方法来获取 cookie 的值,并将其显示在页面上。 同时,我们需要在 HTML 模板中添加表单来提交数据,如下所示: ```html <!DOCTYPE html> <html> <head> <title>Set Cookie</title> </head> <body> <h1>Enter Your Name</h1> <form action="{{ url_for('setcookie') }}" method="POST"> <input type="text" name="name"> <input type="submit" value="Submit"> </form> </body> </html> ``` 最后,我们也需要添加一个读取 cookie 值的 HTML 页面,如下所示: ```html <!DOCTYPE html> <html> <head> <title>Read Cookie</title> </head> <body> <h1>Cookie has been set</h1> <a href="{{ url_for('getcookie') }}">Click here to read the cookie</a> </body> </html> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值