/* * 안전 저장소 래퍼 — JWT는 expo-secure-store(네이티브 keychain/keystore)에 저장. * 웹/미지원 플랫폼은 AsyncStorage로 폴백. 비밀번호는 절대 저장하지 않는다. * "아이디 기억"(이메일)은 비민감 정보이므로 AsyncStorage 사용. */ import * as SecureStore from 'expo-secure-store'; import AsyncStorage from '@react-native-async-storage/async-storage'; import { Platform } from 'react-native'; const useSecure = Platform.OS !== 'web'; export async function secureSet(key: string, value: string): Promise { if (useSecure) { await SecureStore.setItemAsync(key, value); } else { await AsyncStorage.setItem(key, value); } } export async function secureGet(key: string): Promise { if (useSecure) { return SecureStore.getItemAsync(key); } return AsyncStorage.getItem(key); } export async function secureDelete(key: string): Promise { if (useSecure) { await SecureStore.deleteItemAsync(key); } else { await AsyncStorage.removeItem(key); } } // 비민감 저장소 (아이디 기억 등) export async function prefSet(key: string, value: string): Promise { await AsyncStorage.setItem(key, value); } export async function prefGet(key: string): Promise { return AsyncStorage.getItem(key); } export async function prefDelete(key: string): Promise { await AsyncStorage.removeItem(key); }