Reco Everything you wanna value. 자세히보기

[Recoeve.net]

Legacy codes :: Session, Cookie, Auth, Sign-up, Log-in, hash, iter

kipid 2026. 3. 29. 16:26
# Legacy codes :: Session, Cookie, Auth, Sign-up, Log-in, hash, iter ## PH
  • 2026-03-29 : First posting.
## TOC ## prepare.ts ```[.lang-js] m.saveSSN = async function (resp: string) { m.saveSSNResp = await m.strToJSON(resp, true, false); if (m.saveSSNResp?.[1]?.salt) { m.localStorage.setItem("salt", m.saveSSNResp[1].salt); } if (m.saveSSNResp?.[1]?.session) { m.localStorage.setItem("session", m.saveSSNResp[1].session); } return Promise.resolve(); }; ```/ ```[.lang-js] /* Remember user */ m.str_rmb_me = `log\tscreenWidth\tscreenHeight\nweb\t${m.sW}\t${m.sH}`; m.rmb_me = function (callback, args, saveNewRecoInputs) { return new Promise(async function (resolve, reject) { if (saveNewRecoInputs) { const uri = await m.formatURIFully(m.$input_uri.val()); // * (uri, uriRendered, keepOriginal = false) m.$input_uri.val(uri); m.localStorage.setItem("uri", uri); m.localStorage.setItem("title", m.formatTitle(m.$input_title.val().trim())); m.localStorage.setItem("cats", m.formatCats(m.$input_cats.val().trim())); m.localStorage.setItem("desc", m.$input_desc.val().trim()); m.localStorage.setItem("cmt", m.$input_cmt.val().trim()); m.localStorage.setItem("points", m.$input_val.val().trim()); } const SSNencrypt = function (callback: Function, args: any) { return new Promise(async (resolve, reject) => { $.ajax({ type: "GET", url: "/sessionIter" , xhrFields: { withCredentials: true } , dataType: "text" }) .done(async function (iterResp) { let iter = Number(iterResp); if (isNaN(iter)) { try { await callback(args, iterResp); m.$error.html(iterResp); m.$log_out_do_container.css({ zIndex: ++m.zIndex }); m.$log_out_do_container.show(); setTimeout(() => { m.$log_out_do_container.hide(); }, 1024); } catch (err) { console.error(err); m.$error.html(err.message); m.$log_out_do_container.css({ zIndex: ++m.zIndex }); m.$log_out_do_container.show(); setTimeout(() => { m.$log_out_do_container.hide(); }, 1024); } } else if (m.localStorage.getItem("salt") && m.localStorage.getItem("session")) { const encryptedSSN = m.encrypt(m.localStorage.getItem("salt"), m.localStorage.getItem("session").substring(3, 11), iter); m.docCookies.setItem("SSN", encryptedSSN, 1, "/", false, true); m.docCookies.setItem("SSN", encryptedSSN, 1, "/", "recoeve.net", true); try { await callback(args, null); // * null means no error. } catch (err) { console.error(err); m.$error.html(err.message); m.$log_out_do_container.css({ zIndex: ++m.zIndex }); m.$log_out_do_container.show(); setTimeout(() => { m.$log_out_do_container.hide(); }, 1024); } return resolve(iterResp); } $.ajax({ type: "POST", url: "/account/log-in/remember-me.do", data: m.str_rmb_me , dataType: "text" }) .fail(function (resp) { m.$error.html(resp as unknown as string); m.$log_out_do_container.css({ zIndex: ++m.zIndex }); m.$log_out_do_container.show(); setTimeout(() => { m.$log_out_do_container.hide(); }, 1024); }) .done(function (resp) { console.log("/account/log-in/remember-me.do resp:\n", resp); // TODO: remove this. const respJSON = m.strToJSON(resp, true, false); setTimeout(async function () { if (respJSON?.[0]?.[0] === "Rmbd" && respJSON?.[1]?.Rmbd === "true") { await m.saveSSN(resp); if (m.localStorage.getItem("salt") && m.localStorage.getItem("session")) { await SSNencrypt(callback, args); } else { try { await callback(args, resp); // ! No salt and session => Error. } catch (err) { console.error(err); m.$error.html(err.message); args?.$result?.html(err.message); m.$log_out_do_container.css({ zIndex: ++m.zIndex }); m.$log_out_do_container.show(); setTimeout(() => { m.$log_out_do_container.hide(); }, 1024); } } return resolve(resp); } else { try { await callback(args, resp); // ! Not Rmbd => Error. } catch (err) { console.error(err); m.$error.html(err.message); args?.$result?.html(err.message); m.$log_out_do_container.css({ zIndex: ++m.zIndex }); m.$log_out_do_container.show(); setTimeout(() => { m.$log_out_do_container.hide(); }, 1024); } return resolve(resp); } }, m.wait); }); }); }); }; if (m.localStorage.getItem("salt") && m.localStorage.getItem("session")) { SSNencrypt(callback, args); return; } $.ajax({ type: "POST", url: "/account/log-in/remember-me.do", data: m.str_rmb_me , dataType: "text" }) .done(function (resp) { setTimeout(async function () { if (resp?.startsWith("Rmbd")) { await m.saveSSN(resp); if (m.localStorage.getItem("salt") && m.localStorage.getItem("session")) { SSNencrypt(callback, args); } else { try { callback(args, resp); // ! No salt and session => Error. } catch (err) { console.error(err); m.$error.html(err.message); args?.$result?.html(err.message); m.$log_out_do_container.css({ zIndex: ++m.zIndex }); m.$log_out_do_container.show(); setTimeout(() => { m.$log_out_do_container.hide(); }, 1024); } finally { resolve(); } } } else { try { callback(args, resp); // ! Not Rmbd => Error. } catch (err) { console.error(err); m.$error.html(err.message); args?.$result?.html(err.message); m.$log_out_do_container.css({ zIndex: ++m.zIndex }); m.$log_out_do_container.show(); setTimeout(() => { m.$log_out_do_container.hide(); }, 1024); } finally { resolve(); } } }, m.wait); }); }); }; ```/ ## RRA
반응형