diff --git a/src/api/auth/login.ts b/src/api/auth/login.ts new file mode 100644 index 0000000..daeb9ca --- /dev/null +++ b/src/api/auth/login.ts @@ -0,0 +1,18 @@ +import axios from 'axios'; +import { AUTH_URL } from '@/constants/urls'; +import useAuthStore from '@/store/authStore'; + +export default async function handleLogin(email: string, password: string) { + try { + const response = await axios.post(`${AUTH_URL}/login`, { email, password }); + const { accessToken } = response.data; + + const { setAccessToken } = useAuthStore.getState(); + setAccessToken(accessToken); + + return true; + } catch (error) { + console.error('로그인 실패:', error); + return false; + } +} diff --git a/src/api/auth/signup.ts b/src/api/auth/signup.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/store/authStore.ts b/src/store/authStore.ts new file mode 100644 index 0000000..f9eb6b2 --- /dev/null +++ b/src/store/authStore.ts @@ -0,0 +1,18 @@ +import { create } from 'zustand'; +import { User } from '../types/user'; + +interface AuthState { + accessToken: string | null; + user: User | null; + setAccessToken: (accessToken: string | null) => void; + setUser: (user: User | null) => void; +} + +const useAuthStore = create((set) => ({ + user: null, + accessToken: null, + setUser: (user) => set({ user }), + setAccessToken: (accessToken) => set({ accessToken }), +})); + +export default useAuthStore;