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

为了共享用户数据,在 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。

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

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

以上是 解决 Egg.js 中 Cookie 读取为 undefined 的问题 的全部内容, 来源链接: utcz.com/z/264086.html

回到顶部