前端cookie设置httpOnly和secure拿不到,换成localstorage+加密方式

之前同事用的

import Cookies from 'js-cookie'

const TokenKey = 'Admin-Token'


export function getToken() {
  return Cookies.get(TokenKey)
}
export function setToken(token) {
  return Cookies.set(TokenKey, token, { expires: 30, path: '' })
}
export function removeToken() {
  return Cookies.remove(TokenKey)
}

token用接口获取,然后设置在cookie中,以后每个接口调用都要获取这个cookie并且设置在接口的请求头部中,由于安全检查,要添加httpOnly,和secure,但导致js获取不到cookie,从而导致调用失败,所以必须换种方式换成其他方式,我换成的localstorage+加密的方式

export function getToken() {
  return utils.decrypt(localStorage.getItem(utils.encrypt(TokenKey)))
}

export function setToken(token) {
  return localStorage.setItem(utils.encrypt(TokenKey), utils.encrypt(token))
}

export function removeToken() {
  return localStorage.removeItem(utils.encrypt(TokenKey))
}

httpOnly:防止xss攻击,js等非http,https协议方式拿不到cookie,

secure:https中才能传输

参考:

https://www.jianshu.com/p/f9aebec8c018

你可能感兴趣的:(js,javascript,前端,开发语言)