UNPKG

@gistproduct/web

Version:

Build beautiful in-app flows with no code and deliver them instantly to your app.

47 lines (40 loc) 1.8 kB
import { log } from '../utilities/log'; import { setKeyWithExpiryToLocalStore, getKeyFromLocalStore, clearKeyFromLocalStore } from '../utilities/local-storage'; import { v4 as uuidv4 } from 'uuid'; const userTokenCookieName = "gist.web.userToken"; const guestUserTokenCookieName = "gist.web.guestUserToken"; const usingGuestUserTokenCookieName = "gist.web.usingGuestUserToken"; export function isUsingGuestUserToken() { return (getKeyFromLocalStore(usingGuestUserTokenCookieName) !== null); } export function getUserToken() { return getKeyFromLocalStore(userTokenCookieName); } export function setUserToken(userToken, expiryDate) { if (expiryDate === undefined) { expiryDate = new Date(); expiryDate.setDate(expiryDate.getDate() + 30); } setKeyWithExpiryToLocalStore(userTokenCookieName, userToken, expiryDate); clearKeyFromLocalStore(usingGuestUserTokenCookieName); log(`Set user token "${userToken}" with expiry date set to ${expiryDate}`); } export function useGuestSession() { var expiryDate = new Date(); expiryDate.setDate(expiryDate.getDate() + 365); // Guest sessions should never override existing sessions if (getUserToken() === null) { var guestUserToken = getKeyFromLocalStore(guestUserTokenCookieName); if (guestUserToken == null) { guestUserToken = uuidv4(); setKeyWithExpiryToLocalStore(guestUserTokenCookieName, guestUserToken, expiryDate); log(`Set guest user token "${guestUserToken}" with expiry date set to 1 year from today`); } setKeyWithExpiryToLocalStore(userTokenCookieName, guestUserToken, expiryDate); setKeyWithExpiryToLocalStore(usingGuestUserTokenCookieName, true, expiryDate); } } export function clearUserToken() { clearKeyFromLocalStore(userTokenCookieName); log(`Cleared user token`); }