解决 Egg.js 中 Cookie 读取为 undefined 的问题

发布于 2021-12-16 21:30:54 字数 833 浏览 1395 评论 0

为了共享用户数据,在 Eggjs 里面设置登录信息,然后前端直接读取,发现无论怎么读取,都是 undefined,一度怀疑是不是之前的工具函数有问题了,仔细查看了 Eggjs 的文档,发现在使用 cookie 的时候必须要设置的几个参数,其中 httpOnly 需要设置为 false,signed 需要设置为false,域名要设置为共享 cookie 页面的域名。

此处有一个问题是,encrypt 参数的设置默认为 false 所以这里没有设置,如果设置为 true 也会读不到 token 这个原因我在官网上也没找到,可能是加解密的问题。

var token = this.ctx.cookies.set('token', {
// 只允许服务端访问cookie
httpOnly: false,
// 对cookie进行签名,防止用户修改cookie
signed: false ,
//设置键值对生效的域名,默认没有配置,可以配置成只在指定域名才能访问。
domain:'.g3s.com',
//设置键值对生效的 URL 路径,默认设置在根路径上(/),
//也就是当前域名下的所有 URL 都可以访问这个 Cookie。
path:'/'
});

以下为官网的解释因此,前面一定要设置为 false。

在所有提到了 cookie 的位置都需要对参数进行设置,get 函数中的参数需要与 set 函数中的参数一致,不然的话也会出现 undefined 的情况。

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

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

发布评论

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

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84959 人气
更多

推荐作者

花开柳相依

文章 0 评论 0

zyhello

文章 0 评论 0

故友

文章 0 评论 0

对风讲故事

文章 0 评论 0

Oo萌小芽oO

文章 0 评论 0

梦明

文章 0 评论 0

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