cooiek的Secure属性设置

在cooiek.js中添加,获取和删除方法

const cookie = {
    /**
     * @description js原生设置cookie
     * @param {String} name 给你要设置的cookie起个名字(key)
     * @param {String} value cookie的具体内容(value)
     * @param {String} hours 设置cookie的过期时间,单位:天
     */
    // 设置cookie
    setCookie: (name, value, hours) => {
        let exdate = new Date();
        exdate.setTime(exdate.getTime() + hours * 1000 * 60 * 60);
        document.cookie = name + '=' + escape(value) + ((hours == null) ? '' : ';expires=' + exdate.toGMTString()) + ';Secure=true';
    },
    /**
     * @description js原生获取cookie方法1
     * @param {String} name 你要获取的cookie名
     */
    // 获取cookie
    getCookie: (name) => {
        if (document.cookie.length > 0) {
            let start = document.cookie.indexOf(name + '=');
            if (start !== -1) {
                start = start + name.length + 1;
                let end = document.cookie.indexOf(';', start);
                if (end === -1) {
                    end = document.cookie.length;
                    return unescape(document.cookie.substring(start, end));
                }
            }
        }
        return '';
    },
    //删除cookie
    removeCookie: (name) => {
        let exp = new Date();
        exp.setTime(exp.getTime() - 1);
        let cval = cookie.getCookie(name);
        if (cval != null) {
            document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString() + ";Secure=true";
        }
    }
};
 
export default cookie;

加密会话(SSL)Cookie 中缺少 Secure 属性

cooiek中有两个需要把Secure属性为true,是在拦截器的地方设置Secure属性为true,Secure默认值就是false,获取到cooiek中要的值,把Secure=true,在给到document.cookie
 function getCookie(cname) {
        var name = cname + '='
        var ca = document.cookie.split(';')
        for (var i = 0; i < ca.length; i++) {
            var c = ca[i].trim()
            if (c.indexOf(name) == 0) return c.substring(name.length, c.length)
        }
        return ''
    }
    // 调用函数
    let cookie_val = getCookie('BMAP_SECKEY')
    let cookie_value = getCookie('SECKEY_ABVK')
 
    var now = new Date(); //获取当前日期
    now.setDate(now.getDate() + 1); //cookie的保留时间为一天
    document.cookie = 'BMAP_SECKEY' + '=' + cookie_val + ";expires=" + now.toGMTString() + ";Secure=true";
    document.cookie = 'SECKEY_ABVK' + '=' + cookie_value + ";expires=" + now.toGMTString() + ";Secure=true";

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值