nuxt3中set-cookie引发的血案

发表于:2023-05-27 09:44技术,vue,nuxt热度:43喜欢:0

我在使用nuxt3的/server/api/auth,请求了一个已有的服务端接口

  const headers = getRequestHeaders(event)
  const res = await $fetch.raw(baseUrl + '/getAuth', {
    method: 'POST',
    headers: headers as Record<string, string>
  });

服务端会在响应头中设置cookie,格式如下

set-cookie:token=something1; Path=/; Expires=Thu, 27 Jul 2023 01:41:39 GMT; HttpOnly; Secure; SameSite=None, test=something2; Path=/

我需要拿到请求头中set-cookie字段,并且返回给客户端,这个官方网站中给出的实例

  const cookies = (res.headers.get('set-cookie') || '').split(',');
  for (const cookie of cookies) {
    appendResponseHeader(event, 'set-cookie', cookie)
  }

然而set-cookie字段中 expires包含【,】,解析的时候会截断【token】字段,导致过期时间异常。我查阅了规范,在RFC 6265 第 4.1.1 节,规定了express日期是逗号隔开的