react
7. next js : dotnet에서 EUC-KR 로 HttpUtility.UrlDecode 된 2차원 배열 쿠키 사용
subinpapa
2022. 1. 21. 18:27
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;
}
... |