feat(auth): add accessToken field to authStore and setup beforeRequest hook to add this token to headers

This commit is contained in:
Ilia Mashkov
2026-03-17 14:08:29 +03:00
parent 11b84ddc5d
commit ed718eea71
3 changed files with 20 additions and 3 deletions

View File

@@ -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;
},
],

View File

@@ -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<AuthStore>()((set) => ({
const defaultStoreState: Readonly<AuthStoreState> = {
user: undefined,
status: "idle",
accessToken: undefined,
error: null,
};
export const useAuthStore = create<AuthStore>()((set) => ({
...defaultStoreState,
login: async (loginData) => {
set({ status: "loading" });
@@ -22,6 +27,7 @@ export const useAuthStore = create<AuthStore>()((set) => ({
set({
status: "authenticated",
user: responseData?.user,
accessToken: responseData?.accessToken,
error: null,
});
} catch (err) {
@@ -46,6 +52,7 @@ export const useAuthStore = create<AuthStore>()((set) => ({
set({
status: "authenticated",
user: responseData?.user,
accessToken: responseData?.accessToken,
error: null,
});
} catch (err) {

View File

@@ -11,6 +11,10 @@ export interface AuthStoreState {
* Authentication status
*/
status: AuthStatus;
/**
* Authentication token
*/
accessToken?: string;
/**
* Error data
*/