UNPKG

@proveanything/smartlinks-auth-ui

Version:

Lightweight React authentication UI components with bearer token support and Smartlinks SDK integration

72 lines (71 loc) 1.9 kB
const TOKEN_KEY = 'smartlinks_auth_token'; const USER_KEY = 'smartlinks_auth_user'; const ACCOUNT_DATA_KEY = 'smartlinks_account_data'; export const tokenStorage = { saveToken(token, expiresAt) { const authToken = { token, expiresAt: expiresAt || Date.now() + 3600000, // Default 1 hour }; localStorage.setItem(TOKEN_KEY, JSON.stringify(authToken)); }, getToken() { const stored = localStorage.getItem(TOKEN_KEY); if (!stored) return null; try { const authToken = JSON.parse(stored); // Check if token is expired if (authToken.expiresAt && authToken.expiresAt < Date.now()) { this.clearToken(); return null; } return authToken; } catch { return null; } }, clearToken() { localStorage.removeItem(TOKEN_KEY); }, saveUser(user) { localStorage.setItem(USER_KEY, JSON.stringify(user)); }, getUser() { const stored = localStorage.getItem(USER_KEY); if (!stored) return null; try { return JSON.parse(stored); } catch { return null; } }, clearUser() { localStorage.removeItem(USER_KEY); }, clearAll() { this.clearToken(); this.clearUser(); this.clearAccountData(); }, saveAccountData(data) { localStorage.setItem(ACCOUNT_DATA_KEY, JSON.stringify(data)); }, getAccountData() { const stored = localStorage.getItem(ACCOUNT_DATA_KEY); if (!stored) return null; try { return JSON.parse(stored); } catch { return null; } }, clearAccountData() { localStorage.removeItem(ACCOUNT_DATA_KEY); }, };