import CookieManager from '@react-native-cookies/cookies';
import Constants from 'expo-constants';
const webUrl = Constants.expoConfig?.extra?.apiBaseUrl as string;
export const cookieStorage = {
async setRefreshToken(refreshToken: string) {
try {
await CookieManager.setFromResponse(webUrl, refreshToken);
} catch {
throw new Error('Failed to store refresh token in cookies');
}
},
async getRefreshToken(): Promise<string | null> {
try {
const cookies = await CookieManager.get(webUrl);
return cookies.refresh?.value ?? null;
} catch (error) {
console.error('Failed to get refresh token:', error);
return null;
}
},
async removeRefreshToken() {
try {
// Android에서 clearByName()이 지원되지 않아 clearAll() 사용 (임시)
// TODO: 쿠키 삭제 처리 개선
await CookieManager.clearAll();
} catch (error) {
console.error('Failed to remove refresh token:', error);
}
},
};