• xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!


    js cookies all in one

    cookies

    
    // http://10.1.5.202/auto-deploy-platform/publish/index.html
    
    // 非当前 URL 的 domain / path 下, 创建的 cookie 无法写入到当前的 域名/路径下
    // domain 不同,cookie 不能写入
    document.cookie = "token=1234567; Expires=Wed, 21 Oct 2020 07:28:00 GMT; path=/; domain=cdn.xgqfrms.xyz;";
    // path 不同(Ajax path),cookie 不能写入
    document.cookie = "token=1234567; Expires=Wed, 21 Oct 2020 07:28:00 GMT; path=/deployprod/;"
    
    // 当前 URL 的 domain & path 下, 创建的 cookie 可以写入到当前的 域名/路径下
    // 默认 domain === 当前 URL 的 domain
    document.cookie = "token=1234567; Expires=Wed, 21 Oct 2020 07:28:00 GMT; path=/;";
    // 当前 URL 的 domain & path 下,cookie 可以写入
    document.cookie = "token_path1=1234567; Expires=Wed, 21 Oct 2020 07:28:00 GMT; path=/auto-deploy-platform/;"
    // 当前 URL 的 domain & path 下,cookie 可以写入
    document.cookie = "token_path2=1234567; Expires=Wed, 21 Oct 2020 07:28:00 GMT; path=/auto-deploy-platform/publish;"
    
    


    
            function cookies() {
                var D = new Date();
                D.setDate(D.getDate() + 30);
                document.cookie = "author=xgqfrms; website=www.xgqfrms.xyz; domain=xgqfrms.xyz; secure ;expire=" + D;
                /*
                // read cookie
                var rc = document.cookie.substring(5);
                if (rc != "www.xgqfrms.xyz") {
                    alert("cookie is empty!"+rc);
                    var D = new Date();
                    D.setDate(D.getDate()+30);
                    //write cookie
                    document.cookie="name=www.xgqfrms.xyz;domain=xgqfrms.xyz;HttpOnly;expire="+D;
                }else{
                  alert("cookie is:"+rc);
                }
                */
            };
            cookies();
    
    

    view-source:https://www.xgqfrms.xyz/


    cookies & url bug / domain bug???

    URL 与 请求API 路经不一致,如何写入 cookie 并且请求 API 的时候带上 cookies ?

    1. 正常都是 URL 与 请求API 路经一一对应的
    // URL (domain)
    https://cdn.xgqfrms.xyz/json
    
    // API 
    https://cdn.xgqfrms.xyz/json/api/data.json
    
    

    image

    1. jwt 添加一个 dev / prod 字段
    
     // access_token=eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoiQWRtaW4iLCJleHBpcmVkIjoxNTM5ODQxMDQ2NjAwLCJ1c2VyX25hbWUiOiJhZG1pbiIsImVtYWlsIjoiaG9uZ2trQGdpbGRhdGEuY29tIn0.o453AHiAlgE90YHiCAOcPDn5__EfhB7ujaGtjx_xfqg"
    
    

    image


    
    {
        "data": {
            "cookies": "jwt_access_token",
            "prod": false,
            "dev": true
        }
    }
    
    
    
    
    if(document.cookie !== "" && document.cookie.includes(`access_token`)) {
        let token = JSON.parse(decodeURIComponent(atob(document.cookie.replace(`access_token=`, ``).split(`.`)[1])));
        // console.log(`token =`, JSON.stringify(token, null, 4));
        let {
            // role,
            user_name,
            email
        } = token;
        sessionStorage.setItem(`email`, email);
        layui.use(["element", "layer", "form"], function() {
            let element = layui.element,
                form = layui.form,
                layer = layui.layer;
            // layui
            showRoleName(user_name);
            logoutHandler();
            modifyEmail();
            modifyPassword();
        });
    }  else {
        swal({
            title: "未登录用户,无权访问!",
            text: `
                请先登录后,再访问!
    
                1 秒后自动关闭.
            `,
            icon: "warning",
            className: "warning-alert-style",
            timer: 2000,
            button: {
                text: "关闭",
                value: true,
                visible: true,
                closeModal: true
            }
        });
        setTimeout(() => {
            autoRedirectToLogin();
        }, 1000);
    }
    
    

  • 相关阅读:
    不一样的抽象工厂模式(设计模式七)
    不一样的工厂模式(设计模式六)
    asp .net core 静态文件资源
    asp .net core 中间件
    平时写文档的文档要求
    mysql 悲观锁和乐观锁(二)
    Java实现 LeetCode 836 矩形重叠(暴力)
    Java实现 LeetCode 834 树中距离之和(DFS+分析)
    nmon数据采集参数
    Linux安装iostat命令
  • 原文地址:https://www.cnblogs.com/xgqfrms/p/9669751.html
Copyright © 2020-2023  润新知