如何在 JS 中记录 cookie 的某个部分

How to log a certain part of a cookie in JS

我有 set-cookie 的响应 header,值为 set-cookie: frontend=2j5mfe8nidhhmltlaoliu5bmj6; expires=Thu, 10-Sep-2020 22:52:25 GMT; Max-Age=86400; path=/; domain=www.shoepalace.com; httponly,我只想记录 frontend= 之后的 cookie 部分,直到 ;(即 2j5mfe8nidhhmltlaoliu5bmj6

const string = response.headers['set-cookie']

            console.log(string) 
    That logs this: 
    [

  'frontend=0uhi7fj03fro4f5n2at4ev1t77; expires=Fri, 11-Sep-2020 01:15:47 GMT; Max-Age=86400; path=/; domain=www.shoepalace.com; HttpOnly',
  '__cf_bm=2d7abb53a603ff50426362615a2cba7c3bd0d58c-1599700547-1800-AVURmHeYokYbppItftnydR/xiAuOS75aQzUlJoxN/79VKKgYr9d7cx6DmgdSK4BbvjQ/pjC0+5lQXkLdn/QIdII=; path=/; expires=Thu, 10-Sep-20 01:45:47 GMT; domain=.shoepalace.com; HttpOnly; Secure; SameSite=None'
]


            const pairs = string.split(';')
            const obj = {}

            pairs.forEach(pair => {
                const split = pair.split('=')
                const key = split[0]
                const value = split[1]
                obj[key] = value
            })
              
            console.log(obj.frontend)

像这样:

const cookies = [
  'frontend=0uhi7fj03fro4f5n2at4ev1t77; expires=Fri, 11-Sep-2020 01:15:47 GMT; Max-Age=86400; path=/; domain=www.shoepalace.com; HttpOnly',
  '__cf_bm=2d7abb53a603ff50426362615a2cba7c3bd0d58c-1599700547-1800-AVURmHeYokYbppItftnydR/xiAuOS75aQzUlJoxN/79VKKgYr9d7cx6DmgdSK4BbvjQ/pjC0+5lQXkLdn/QIdII=; path=/; expires=Thu, 10-Sep-20 01:45:47 GMT; domain=.shoepalace.com; HttpOnly; Secure; SameSite=None'
]

let frontendValue
cookies.forEach(cookie => {
  const pairs = cookie.split(';')  

  pairs.forEach(pair => {
    const split = pair.split('=')
    const key = split[0]
    if (key === 'frontend') {
      frontendValue = split[1]
    }
  })  
})

console.log(frontendValue)

  1. 我们在每一个之后将字符串分割成一个数组;
  2. 我们创建一个空的object/dictionary/map
  3. 遍历我们得到的所有 key-value 对
  4. 再次分裂=
  5. 读取键和return前端的值