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

发布于 2021-12-16 21:30:54 字数 833 浏览 1407 评论 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

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

文章
评论
84963 人气
更多

推荐作者

夢野间

文章 0 评论 0

doggiejohn

文章 0 评论 0

就此别过

文章 0 评论 0

初见终念

文章 0 评论 0

qq_rvKjBH

文章 0 评论 0

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