/** * GUARDiA Messenger — 인증 토큰 유틸 * SecureStore에 저장된 JWT 토큰을 읽어온다. (키: grd_token) */ import * as SecureStore from 'expo-secure-store' const TOKEN_KEY = 'grd_token' const USER_KEY = 'grd_user' export async function getToken(): Promise { try { return await SecureStore.getItemAsync(TOKEN_KEY) } catch { return null } } export async function getStoredUser(): Promise { try { const raw = await SecureStore.getItemAsync(USER_KEY) return raw ? (JSON.parse(raw) as T) : null } catch { return null } } /** 인증 헤더가 포함된 fetch 래퍼. */ export async function authFetch(input: string, init: RequestInit = {}): Promise { const token = await getToken() const headers: Record = { 'Content-Type': 'application/json', ...(init.headers as Record | undefined), } if (token) headers.Authorization = `Bearer ${token}` return fetch(input, { ...init, headers }) }