zoukankan      html  css  js  c++  java
  • xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!

    Cookies Reader

    
    "use strict";
    
    /**
     *
     * @author xgqfrms
     * @license MIT
     * @copyright xgqfrms
     *
     * @description CookiesReader
     * @augments
     * @example
     *
     */
    
    const CookiesReader = (key = ``, debug = false) => {
        if(key) {
            let name = `${key}=`;
            let decodedCookie = decodeURIComponent(document.cookie);
            let cookies = decodedCookie.split(`;`);
            for(let i = 0; i <cookies.length; i++) {
                let cookie = cookies[i];
                while (cookie.charAt(0) === ` `) {
                    // trim() ???
                    cookie = cookie.substring(1);
                }
                if (cookie.indexOf(name) === 0) {
                    return cookie.substring(name.length, cookie.length);
                }
            }
            return "";
        } else {
            console.error(`Please pass the key of cookie!, key = ${key}`);
        }
    };
    
    const getCookieValue = (key = ``, debug = false) => {
        if(key) {
            let name = `${key}=`;
            let decodedCookie = decodeURIComponent(document.cookie);
            let cookies = decodedCookie.split(`;`);
            for(let i = 0; i <cookies.length; i++) {
                let cookie = cookies[i];
                while (cookie.charAt(0) === ` `) {
                    // trim() ???
                    cookie = cookie.substring(1);
                }
                if (cookie.indexOf(name) === 0) {
                    return cookie.substring(name.length, cookie.length);
                }
            }
            return "";
        } else {
            console.error(`Please pass the key of cookie!, key = ${key}`);
        }
    };
    
    
    
    export default CookiesReader;
    
    export {
        CookiesReader,
        getCookieValue,
    };
    
    
    
    /*
    
    
    import {
        getCookieValue,
        // CookiesReader,
    } from "./cookies-reader";
    
    JSON.parse(decodeURIComponent(atob(getCookieValue(`access_token_test`).split(`.`)[1])));
    JSON.parse(decodeURIComponent(atob(getCookieValue(`access_token_prod`).split(`.`)[1])));
    
    
    JSON.parse(decodeURIComponent(atob(getCookieValue(`${access_token}`).split(`.`)[1])));
    
    
    */
    
    

    demo

    
    import {
        getCookieValue,
        // CookiesReader,
    } from "./cookies-reader";
    
    
    JSON.parse(decodeURIComponent(atob(getCookieValue(`access_token_test`).split(`.`)[1])));
    JSON.parse(decodeURIComponent(atob(getCookieValue(`access_token_prod`).split(`.`)[1])));
    
    
    
    
    
    
    import {
        getCookieValue,
        // CookiesReader,
    } from "./cookies-reader";
    
    import {
        ROLE,
        DEV
    } from "./url-roles";
    
    
    
    let access_token = ``;
    
    if (DEV === "production") {
        access_token = `access_token_prod`;
    } else {
        access_token = `access_token_test`;
    }
    
    
    // let token = JSON.parse(decodeURIComponent(atob(document.cookie.replace(`${access_token}`, ``).split(`.`)[1])));
    let token = JSON.parse(decodeURIComponent(atob(getCookieValue(`${access_token}`).split(`.`)[1])));
    
    

    HttpOnly & bug

    bug

    const CookiesReader = (key = ``, debug = false) => {
        if(key) {
            let name = `${key}=`;
            let decodedCookie = decodeURIComponent(document.cookie);
            let cookies = decodedCookie.split(`;`);
            for(let i = 0; i <cookies.length; i++) {
                let cookie = cookies[i];
                while (cookie.charAt(0) === ` `) {
                    // trim() ???
                    cookie = cookie.substring(1);
                }
                if (cookie.indexOf(name) === 0) {
                    return cookie.substring(name.length, cookie.length);
                }
            }
            return "";
        } else {
            console.error(`Please pass the key of cookie!, key = ${key}`);
        }
    };
    
    CookiesReader(`JSESSIONID`);
    
    


  • 相关阅读:
    [转]IIS 6.0中配置HTTP Gzip压缩
    SmartPhone下解决rm、rmvb等格式电影播放的方案(参考意见)
    提取文件夹下所有文件,按类型进行提取
    重学JSP—设置CATALINA_HOME环境变量
    android学习笔记
    用myeclipse配置hibernate
    Java 回调函数 转自:http://blog.sina.com.cn/s/blog_48cf38890100go6x.html
    fastadmin单独控制编辑、删除按钮的展示和隐藏
    fastadmin导出图片
    php计算坐标距离
  • 原文地址:https://www.cnblogs.com/xgqfrms/p/9816422.html
Copyright © 2011-2022 走看看