livebook/assets/js/lib/user.js

44 lines
988 B
JavaScript
Raw Normal View History

import { decodeBase64, encodeBase64 } from "./utils";
const USER_DATA_COOKIE = "user_data";
/**
* Stores user data in the `"user_data"` cookie.
*/
export function storeUserData(userData) {
const json = JSON.stringify(userData);
const encoded = encodeBase64(json);
setCookie(USER_DATA_COOKIE, encoded, 157_680_000); // 5 years
}
/**
* Loads user data from the `"user_data"` cookie.
*/
export function loadUserData() {
const encoded = getCookieValue(USER_DATA_COOKIE);
if (encoded) {
const json = decodeBase64(encoded);
return JSON.parse(json);
} else {
return null;
}
}
function getCookieValue(key) {
const cookie = document.cookie
.split("; ")
.find((cookie) => cookie.startsWith(`${key}=`));
if (cookie) {
const value = cookie.replace(`${key}=`, "");
return value;
} else {
return null;
}
}
function setCookie(key, value, maxAge) {
const cookie = `${key}=${value};max-age=${maxAge};path=/`;
document.cookie = cookie;
}