diff --git a/src/features/auth/api/config/authApi/authApi.ts b/src/features/auth/api/config/authApi/authApi.ts index d22eb9c..e445473 100644 --- a/src/features/auth/api/config/authApi/authApi.ts +++ b/src/features/auth/api/config/authApi/authApi.ts @@ -1,3 +1,4 @@ +import { useAuthStore } from "../../../model"; import { api as baseApi } from "shared/config"; // Extend base API with authentication hooks @@ -5,7 +6,12 @@ export const api = baseApi.extend({ hooks: { beforeRequest: [ (request) => { - // Add authentication token to request headers + const token = useAuthStore.getState().accessToken; + + if (token) { + request.headers.set("Authorization", `Bearer ${token}`); + } + return request; }, ], diff --git a/src/features/auth/model/stores/authStore/authStore.ts b/src/features/auth/model/stores/authStore/authStore.ts index d6aba35..b46b004 100644 --- a/src/features/auth/model/stores/authStore/authStore.ts +++ b/src/features/auth/model/stores/authStore/authStore.ts @@ -1,13 +1,18 @@ import { create } from "zustand"; -import type { AuthStore } from "../../types/store"; +import type { AuthStore, AuthStoreState } from "../../types/store"; import { login, logout, register } from "../../../api"; import { callApi } from "shared/utils"; import { UNEXPECTED_ERROR_MESSAGE } from "shared/config"; -export const useAuthStore = create()((set) => ({ +const defaultStoreState: Readonly = { user: undefined, status: "idle", + accessToken: undefined, error: null, +}; + +export const useAuthStore = create()((set) => ({ + ...defaultStoreState, login: async (loginData) => { set({ status: "loading" }); @@ -22,6 +27,7 @@ export const useAuthStore = create()((set) => ({ set({ status: "authenticated", user: responseData?.user, + accessToken: responseData?.accessToken, error: null, }); } catch (err) { @@ -46,6 +52,7 @@ export const useAuthStore = create()((set) => ({ set({ status: "authenticated", user: responseData?.user, + accessToken: responseData?.accessToken, error: null, }); } catch (err) { diff --git a/src/features/auth/model/types/store.ts b/src/features/auth/model/types/store.ts index 5952dc8..4692f61 100644 --- a/src/features/auth/model/types/store.ts +++ b/src/features/auth/model/types/store.ts @@ -11,6 +11,10 @@ export interface AuthStoreState { * Authentication status */ status: AuthStatus; + /** + * Authentication token + */ + accessToken?: string; /** * Error data */