Fix auth: hash routing bugs, proper error parsing from JSON responses
parent
5d0b8736fc
commit
87da0d19b3
|
|
@ -59,7 +59,11 @@ export function AuthProvider({ children }: { children: ReactNode }) {
|
||||||
headers: { "Content-Type": "application/json" },
|
headers: { "Content-Type": "application/json" },
|
||||||
body: JSON.stringify({ email, password }),
|
body: JSON.stringify({ email, password }),
|
||||||
});
|
});
|
||||||
if (!res.ok) { setError(await res.text()); return; }
|
if (!res.ok) {
|
||||||
|
const err = await res.json().catch(() => ({ error: "Authentication failed" }));
|
||||||
|
setError(err.error || "Authentication failed");
|
||||||
|
return;
|
||||||
|
}
|
||||||
const data: User = await res.json();
|
const data: User = await res.json();
|
||||||
setUser(data);
|
setUser(data);
|
||||||
setLocation("/");
|
setLocation("/");
|
||||||
|
|
@ -72,7 +76,11 @@ export function AuthProvider({ children }: { children: ReactNode }) {
|
||||||
headers: { "Content-Type": "application/json" },
|
headers: { "Content-Type": "application/json" },
|
||||||
body: JSON.stringify({ name, email, password }),
|
body: JSON.stringify({ name, email, password }),
|
||||||
});
|
});
|
||||||
if (!res.ok) { setError(await res.text()); return; }
|
if (!res.ok) {
|
||||||
|
const err = await res.json().catch(() => ({ error: "Registration failed" }));
|
||||||
|
setError(err.error || "Registration failed");
|
||||||
|
return;
|
||||||
|
}
|
||||||
const data: User = await res.json();
|
const data: User = await res.json();
|
||||||
setUser(data);
|
setUser(data);
|
||||||
setLocation("/");
|
setLocation("/");
|
||||||
|
|
@ -81,7 +89,7 @@ export function AuthProvider({ children }: { children: ReactNode }) {
|
||||||
const logout = async () => {
|
const logout = async () => {
|
||||||
await fetch("/api/auth/logout", { method: "POST" });
|
await fetch("/api/auth/logout", { method: "POST" });
|
||||||
setUser(null);
|
setUser(null);
|
||||||
setLocation("/#/login");
|
setLocation("/login");
|
||||||
};
|
};
|
||||||
|
|
||||||
const updateProfile = async (data: { name?: string; email?: string }) => {
|
const updateProfile = async (data: { name?: string; email?: string }) => {
|
||||||
|
|
@ -91,7 +99,11 @@ export function AuthProvider({ children }: { children: ReactNode }) {
|
||||||
headers: { "Content-Type": "application/json" },
|
headers: { "Content-Type": "application/json" },
|
||||||
body: JSON.stringify(data),
|
body: JSON.stringify(data),
|
||||||
});
|
});
|
||||||
if (!res.ok) { setError(await res.text()); return false; }
|
if (!res.ok) {
|
||||||
|
const err = await res.json().catch(() => ({ error: "Update failed" }));
|
||||||
|
setError(err.error || "Update failed");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
const updated: User = await res.json();
|
const updated: User = await res.json();
|
||||||
setUser(updated);
|
setUser(updated);
|
||||||
return true;
|
return true;
|
||||||
|
|
@ -104,7 +116,11 @@ export function AuthProvider({ children }: { children: ReactNode }) {
|
||||||
headers: { "Content-Type": "application/json" },
|
headers: { "Content-Type": "application/json" },
|
||||||
body: JSON.stringify({ currentPassword: current, newPassword: newPass }),
|
body: JSON.stringify({ currentPassword: current, newPassword: newPass }),
|
||||||
});
|
});
|
||||||
if (!res.ok) { setError(await res.text()); return false; }
|
if (!res.ok) {
|
||||||
|
const err = await res.json().catch(() => ({ error: "Password change failed" }));
|
||||||
|
setError(err.error || "Password change failed");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
await res.json();
|
await res.json();
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
@ -116,7 +132,11 @@ export function AuthProvider({ children }: { children: ReactNode }) {
|
||||||
headers: { "Content-Type": "application/json" },
|
headers: { "Content-Type": "application/json" },
|
||||||
body: JSON.stringify({ email }),
|
body: JSON.stringify({ email }),
|
||||||
});
|
});
|
||||||
if (!res.ok) { setError(await res.text()); return false; }
|
if (!res.ok) {
|
||||||
|
const err = await res.json().catch(() => ({ error: "Request failed" }));
|
||||||
|
setError(err.error || "Request failed");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
await res.json();
|
await res.json();
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue