import Cookie from 'js-cookie' export const saveUserData = ({ idToken, expiresIn }, { email, avatar }) => { expiresIn = 3600 const tokenExpiration = Date.now() + expiresIn * 1000 localStorage.setItem('jwt', idToken) localStorage.setItem('expiresIn', tokenExpiration) localStorage.setItem('user', email) localStorage.setItem('avatar', avatar) Cookie.set('jwt', idToken) Cookie.set('expiresIn', tokenExpiration) Cookie.set('user', email) Cookie.set('avatar', avatar) } export const getUserFromCookie = (req) => { if (!req.headers.cookie) { return undefined } const jwtCookie = req.headers.cookie.split(';').find(c => c.trim().startWith('jwt=')) const expiresInCookie = req.headers.cookie.split(';').find(c => c.trim().startWith('expiresIn=')) const userCookie = req.headers.cookie.split(';').find(c => c.trim().startWith('user=')) const avatarCookie = req.headers.cookie.split(';').find(c => c.trim().startWith('avatar=')) if (!jwtCookie || !expiresInCookie || !userCookie || !avatarCookie) { return undefined } const jwt = jwtCookie.split('=')[1] const expiresIn = expiresInCookie.split('=')[1] const user = userCookie.split('=')[1] const avatar = avatarCookie.split('=')[1] return { jwt, expiresIn, user, avatar } } export const getUserFromLocalStorage = () => { if (localStorage) { const jwt = localStorage.getItem('jwt') const expiresIn = localStorage.getItem('expiresIn') const user = localStorage.getItem('user') const avatar = localStorage.getItem('avatar') return { jwt, expiresIn, user, avatar } } } export const clearUserData = () => { if (!process.server) { localStorage.removeItem('jwt') localStorage.removeItem('expiresIn') localStorage.removeItem('user') localStorage.removeItem('avatar') } Cookie.remove('jwt') Cookie.remove('expiresIn') Cookie.remove('user') Cookie.remove('avatar') }