const ACCESS_TOKEN_STATE_KEY = 'access_token'; const ACCESS_TOKEN_COOKIE_KEY = 'access_token'; export function signHeaders(headers?: Record) { const { token } = useAccessToken() return { headers: { ...(headers || {}), 'Authorization': 'Bearer ' + token.value } } } export function useAccessToken() { const tokenCookie = useCookie(ACCESS_TOKEN_COOKIE_KEY, { expires: new Date(Date.now() + 1000 * 60 * 60 * 24 * 30) }) const token = useState(ACCESS_TOKEN_STATE_KEY); const needLoad = useState('needAccessTokenLoad', () => true); const readToken = () => { token.value = tokenCookie.value; needLoad.value = false; } const setToken = (newToken: string) => { tokenCookie.value = newToken; token.value = tokenCookie.value; needLoad.value = false; } if (needLoad.value == true) readToken(); return { token, readToken, setToken, needLoad } }