mirror of
https://github.com/Sea-Haven-Industries/shoc-frontend-new.git
synced 2026-09-30 10:23:11 +00:00
- Make tokenUtility.js the single source of truth for localStorage - Add getRawToken() and isAuthenticated() to tokenUtility - Rewrite authService.js to delegate storage to tokenUtility - Fix calendar api.js direct localStorage access - Remove unused setToken import from apiUtil.js
50 lines
1.1 KiB
JavaScript
50 lines
1.1 KiB
JavaScript
const tokenKey = "token";
|
|
|
|
export const setUser = (user) => {
|
|
if (user && user.token) {
|
|
window.localStorage.setItem(tokenKey, JSON.stringify(user));
|
|
}
|
|
else {
|
|
window.localStorage.removeItem(tokenKey);
|
|
}
|
|
}
|
|
|
|
export const getAccessToken = () => {
|
|
let result = window.localStorage.getItem(tokenKey);
|
|
if (!result) {
|
|
return "";
|
|
}
|
|
const user = JSON.parse(result);
|
|
return `Bearer ${user.token}`;
|
|
}
|
|
|
|
export const getRawToken = () => {
|
|
let result = window.localStorage.getItem(tokenKey);
|
|
if (!result) {
|
|
return null;
|
|
}
|
|
return JSON.parse(result).token || null;
|
|
}
|
|
|
|
export const getUser = () => {
|
|
let result = window.localStorage.getItem(tokenKey);
|
|
if (!result) {
|
|
return null;
|
|
}
|
|
return JSON.parse(result);
|
|
}
|
|
|
|
export const removeToken = () => {
|
|
window.localStorage.removeItem(tokenKey);
|
|
}
|
|
|
|
export const isAuthenticated = () => {
|
|
const token = getRawToken();
|
|
if (!token) return false;
|
|
try {
|
|
const payload = JSON.parse(atob(token.split(".")[1]));
|
|
return new Date(payload.exp * 1000) > new Date();
|
|
} catch (e) {
|
|
return false;
|
|
}
|
|
}
|