Ramble-FE / utils / tokenStorage.ts
tokenStorage.ts
Raw
import * as SecureStore from "expo-secure-store";
import { Platform } from "react-native";

const isWeb = Platform.OS === "web";

export const tokenStorage = {
    async getAccessToken(): Promise<string | null> {
        try {
            if (isWeb) {
                return localStorage.getItem("accessToken");
            }   
        
            return await SecureStore.getItemAsync("accessToken");
        } catch (error) {
            console.error("토큰 조회 실패:", error);  
            return null;  
        }  
    },

    async setAccessToken(token: string): Promise<void> {
        try {
            if (isWeb) {
                localStorage.setItem("accessToken", token);
            } else {
                await SecureStore.setItemAsync("accessToken", token);
            }
        } catch (error) {
            console.error("토큰 조회 실패:", error);  
            throw error;
        }
    },

    async removeAccessToken(): Promise<void> {
        if (isWeb) {
            localStorage.removeItem("accessToken");
        } else {
            await SecureStore.deleteItemAsync("accessToken");
        }
    },
};