35 lines
893 B
TypeScript
35 lines
893 B
TypeScript
import * as SecureStore from "expo-secure-store";
|
|
|
|
export interface TokenCache {
|
|
getToken: (key: string) => Promise<string | undefined | null>;
|
|
saveToken: (key: string, token: string) => Promise<void>;
|
|
clearToken?: (key: string) => void;
|
|
}
|
|
|
|
export const tokenCache = {
|
|
async getToken(key: string) {
|
|
try {
|
|
const item = await SecureStore.getItemAsync(key);
|
|
if (item) {
|
|
console.log(`${key} was used 🔐 \n`);
|
|
} else {
|
|
console.log("No values stored under key: " + key);
|
|
}
|
|
return item;
|
|
} catch (error) {
|
|
console.error("GET_TOKEN_CACHE: ", error);
|
|
await SecureStore.deleteItemAsync(key);
|
|
return null;
|
|
}
|
|
},
|
|
async saveToken(key: string, value: string) {
|
|
try {
|
|
return SecureStore.setItemAsync(key, value);
|
|
} catch (err) {
|
|
console.error("SAVE_TOKEN_CACHE: ", err);
|
|
|
|
return;
|
|
}
|
|
},
|
|
};
|