feat(frontend): finished login form with validation
This commit is contained in:
@@ -9,28 +9,31 @@ type User = {
|
||||
export type SessionState = {
|
||||
user: User | null;
|
||||
token: string | null;
|
||||
setSession: (user: SessionState["user"], token: string) => void;
|
||||
setSession: (user: User | null, token: string | null) => void;
|
||||
clearSession: () => void;
|
||||
};
|
||||
|
||||
export const useSessionStore = create<SessionState>((set) => {
|
||||
// Initialize from localStorage
|
||||
const storedUser = localStorage.getItem("user");
|
||||
// Initialize token from localStorage, but user remains in memory only
|
||||
const storedToken = localStorage.getItem("auth_token");
|
||||
|
||||
return {
|
||||
user: storedUser ? JSON.parse(storedUser) : null,
|
||||
user: null, // User is NOT stored in localStorage
|
||||
token: storedToken || null,
|
||||
|
||||
setSession: (user, token) => {
|
||||
localStorage.setItem("auth_token", token);
|
||||
//localStorage.setItem("user", JSON.stringify(user));
|
||||
if (token) {
|
||||
localStorage.setItem("auth_token", token);
|
||||
} else {
|
||||
localStorage.removeItem("auth_token");
|
||||
}
|
||||
|
||||
console.log("Setting session:", {user, token});
|
||||
set({user, token});
|
||||
},
|
||||
|
||||
clearSession: () => {
|
||||
localStorage.removeItem("auth_token");
|
||||
//localStorage.removeItem("user");
|
||||
set({user: null, token: null});
|
||||
},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user