const STORAGE_KEY = "shserv_access_token";
let _accessToken = null;
/**
* Set the current OAuth access token for Bearer authentication.
* Persists to localStorage so the token survives page reloads.
* @param {string|null} token
*/
export function setAccessToken(token) {
_accessToken = token || null;
try {
if (_accessToken) {
localStorage.setItem(STORAGE_KEY, _accessToken);
} else {
localStorage.removeItem(STORAGE_KEY);
}
} catch {
// localStorage may be unavailable (private mode, etc.)
}
}
/**
* Get the current access token.
* Falls back to localStorage if the in-memory value was lost (e.g. page reload).
* @returns {string|null}
*/
export function getAccessToken() {
if (_accessToken) {
return _accessToken;
}
try {
return localStorage.getItem(STORAGE_KEY) || null;
} catch {
return null;
}
}
/**
* Clear the stored access token (memory + localStorage).
*/
export function clearAccessToken() {
_accessToken = null;
try {
localStorage.removeItem(STORAGE_KEY);
} catch {
// ignore
}
}