@narangcia-oss/cryptic-auth-client-plain-ts
Version:
A TypeScript client for interacting with a cryptic-auth host web server, crafted by Narangcia OSS.
85 lines (84 loc) • 2.73 kB
JavaScript
;
/**
* Token utility functions
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.isTokenExpired = isTokenExpired;
exports.extractTokens = extractTokens;
exports.storeTokens = storeTokens;
exports.retrieveTokens = retrieveTokens;
exports.clearStoredTokens = clearStoredTokens;
/**
* Checks if a token is expired based on its timestamp
*/
function isTokenExpired(exp) {
const now = Math.floor(Date.now() / 1000);
const expired = exp < now;
console.log("[Tokens] Checking token expiration:", { exp, now, expired });
return expired;
}
/**
* Extracts tokens from auth response
*/
function extractTokens(response) {
console.log("[Tokens] Extracting tokens from response:", response);
return {
access_token: response.access_token,
refresh_token: response.refresh_token,
};
}
/**
* Stores tokens securely (placeholder for future custom storage)
*/
function storeTokens(tokens, storage = "memory") {
console.log("[Tokens] Storing tokens:", { tokens, storage });
switch (storage) {
case "localStorage":
localStorage.setItem("auth_tokens", JSON.stringify(tokens));
break;
case "sessionStorage":
sessionStorage.setItem("auth_tokens", JSON.stringify(tokens));
break;
default:
// Memory storage is handled by the AuthClient instance
break;
}
}
/**
* Retrieves stored tokens
*/
function retrieveTokens(storage = "memory") {
console.log("[Tokens] Retrieving tokens from storage:", storage);
switch (storage) {
case "localStorage": {
const localTokens = localStorage.getItem("auth_tokens");
console.log("[Tokens] Retrieved from localStorage:", localTokens);
return localTokens ? JSON.parse(localTokens) : null;
}
case "sessionStorage": {
const sessionTokens = sessionStorage.getItem("auth_tokens");
console.log("[Tokens] Retrieved from sessionStorage:", sessionTokens);
return sessionTokens ? JSON.parse(sessionTokens) : null;
}
default:
// Memory storage is handled by the AuthClient instance
return null;
}
}
/**
* Clears stored tokens
*/
function clearStoredTokens(storage = "memory") {
console.log("[Tokens] Clearing stored tokens from:", storage);
switch (storage) {
case "localStorage":
localStorage.removeItem("auth_tokens");
break;
case "sessionStorage":
sessionStorage.removeItem("auth_tokens");
break;
default:
// Memory storage is handled by the AuthClient instance
break;
}
}