koa2 使用 cookie

发布于 2024-08-23 01:30:21 字数 1579 浏览 17 评论 0

使用方法

koa 提供了从上下文直接读取、写入 cookie 的方法

  • ctx.cookies.get(name, [options]) 读取上下文请求中的 cookie
  • ctx.cookies.set(name, value, [options]) 在上下文中写入 cookie

koa2 中操作的 cookies 是使用了 npm 的 cookies 模块,源码在 https://github.com/pillarjs/cookies ,所以在读写 cookie 的使用参数与该模块的使用一致。

例子代码

const Koa = require('koa')
const app = new Koa()

app.use( async ( ctx ) => {

  if ( ctx.url === '/index' ) {
    ctx.cookies.set(
      'cid', 
      'hello world',
      {
        domain: 'localhost',  // 写 cookie 所在的域名
        path: '/index',       // 写 cookie 所在的路径
        maxAge: 10 * 60 * 1000, // cookie 有效时长
        expires: new Date('2017-02-15'),  // cookie 失效时间
        httpOnly: false,  // 是否只用于 http 请求中获取
        overwrite: false  // 是否允许重写
      }
    )
    ctx.body = 'cookie is ok'
  } else {
    ctx.body = 'hello world' 
  }

})

app.listen(3000, () => {
  console.log('[demo] cookie is starting at port 3000')
})

运行例子

执行脚本

node index.js

运行结果

访问 http://localhost:3000/index

  • 可以在控制台的 cookie 列表中中看到写在页面上的 cookie
  • 在控制台的 console 中使用 document.cookie 可以打印出在页面的所有 cookie(需要是 httpOnly 设置 false 才能显示)

cookie-result-01

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

文章
评论
24 人气
更多

推荐作者

18058794968

文章 0 评论 0

未名湖

文章 0 评论 0

断舍离

文章 0 评论 0

文章 0 评论 0

cyay10

文章 0 评论 0

qq_RdefO0

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文