본문 바로가기

react

7. next js : dotnet에서 EUC-KR 로 HttpUtility.UrlDecode 된 2차원 배열 쿠키 사용

yarn add decode-uri-component-charset
 

 


import cookies from 'next-cookies';
import { decodeURIComponentCharset } from 'decode-uri-component-charset';

....

export function Get(context: any) : IAuthManager {
    let authMgr : IAuthManager = init();

    let allCookie = cookies(context);
    if(!(typeof allCookie === 'undefined' || allCookie=== null) && !(typeof allCookie.twoDimensionalArrayCookie=== 'undefined' || allCookie.twoDimensionalArrayCookie=== null)){
        const _twoDimensionalArrayCookieString = decodeURIComponentCharset(allCookie.twoDimensionalArrayCookie, 'euc-kr');
        authMgr.twoDimensionalArrayCookie= SetArrayCookie(_twoDimensionalArrayCookieString);
    }

    authMgr.isLogin = IsLoginAction(authMgr);
    authMgr.isExpertLogin = IsExpertLoginAction(authMgr);
 
    return authMgr;
}

...

function SetArrayCookie(_twoDimensionalArrayCookieString:string) : ITwoDimensionalArrayCookie {
    let twoDimensionalArrayCookie : ITwoDimensionalArrayCookieString = initTwoDimensionalArrayCookie();
    if(!(typeof _twoDimensionalArrayCookieString === 'undefined' || _twoDimensionalArrayCookieString === null)){
        let arrCookie : string[] = _twoDimensionalArrayCookieString .split("&");
        arrCookie .forEach((pair, index) => {
            //   console.log(pair);
            let item : string[] = pair.split("=");
               
            if(!(typeof item === 'undefined' || item=== null) && item.length > 1){
                let list = Object.keys(twoDimensionalArrayCookie);
                //  console.log(" item[0] = " + item[0]);
                list.forEach((baseItem, index) => {
                    //  console.log(baseItem + " === " + item[0]);
                    if(baseItem === item[0]){
                        twoDimensionalArrayCookie[baseItem] = item[1];
                        //  console.log(" item => " + baseItem + " => " + twoDimensionalArrayCookie[baseItem] );
                    }
                });
            }
        });
    }
    return twoDimensionalArrayCookie;
}

...