shoc-frontend-new/src/tokenUtility.js

51 lines
1.1 KiB
JavaScript
Raw Normal View History

2026-01-11 17:35:33 -06:00
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 = () => {
2026-01-11 17:35:33 -06:00
let result = window.localStorage.getItem(tokenKey);
if (!result) {
return null;
2026-01-11 17:35:33 -06:00
}
return JSON.parse(result).token || null;
}
2026-01-11 17:35:33 -06:00
export const getUser = () => {
let result = window.localStorage.getItem(tokenKey);
if (!result) {
return null;
}
2026-01-11 17:35:33 -06:00
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;
}
}