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`);
    
    


  • 相关阅读:
    php的rabbitmq扩展(未测试)
    rabbitmq安装
    windows操作系统安装jdk以及配置环境变量
    chrome设置user-agent
    pycharm中快捷键ctrl+c,ctrl+v,ctrl+f失效问题解决
    chrome设置user agent
    Pycharm鼠标滚动控制字体大小
    mouse事件实现可拖拽的div
    DOM事件委托
    !heap 手动查询内存泄漏
  • 原文地址:https://www.cnblogs.com/xgqfrms/p/9816422.html
Copyright © 2011-2022 走看看