import { useState } from './useState'; import { useRole } from './useRole'; export function useSession() { function getToken() { const localToken = localStorage.getItem('token'); const sessionToken = sessionStorage.getItem('token'); return localToken || sessionToken || ''; } function setToken(data) { if (data.keepLogin) { localStorage.setItem('token', data.token); } else { sessionStorage.setItem('token', data.token); } } function destroy() { localStorage.removeItem('token'); sessionStorage.getItem('token'); const { setUser } = useState(); setUser({ id: 0, username: '', nickname: '', }); } async function login(token, keepLogin) { const { fetch } = useRole(); setToken({ token, keepLogin }); await fetch(); } function isLoggedIn() { const localToken = localStorage.getItem('token'); const sessionToken = sessionStorage.getItem('token'); return !!(localToken || sessionToken); } return { getToken, setToken, destroy, login, isLoggedIn, }; }