T
TanStack2y ago
conventional-tan

useQuery handle logout for 401 errors in global callback

How can i handle logout for 401 errors in global callback in useQuery ? i want to logout once the 401 error occurs main.jsx
const queryClient = new QueryClient({
queryCache: new QueryCache({
onError: (error, query) => {
console.log("error triggered onError");
if (error.response?.status === 401) {
// i want to handle logout here
}
if (query.state.data !== undefined) {
toast.error(`Something went wrong: ${error.message}`);
}
},
}),
});
const queryClient = new QueryClient({
queryCache: new QueryCache({
onError: (error, query) => {
console.log("error triggered onError");
if (error.response?.status === 401) {
// i want to handle logout here
}
if (query.state.data !== undefined) {
toast.error(`Something went wrong: ${error.message}`);
}
},
}),
});
where i already have useAuth
const logoutUserAsync = () => {
return authFetch("/auth/logout");
};
export const useLogoutUser = () => {
const queryClient = useQueryClient();
const navigate = useNavigate();

return useMutation({
mutationFn: logoutUserAsync,
onSuccess: () => {
navigate("/login");
queryClient.clear();
queryClient.removeQueries("user");
},
});
};
const logoutUserAsync = () => {
return authFetch("/auth/logout");
};
export const useLogoutUser = () => {
const queryClient = useQueryClient();
const navigate = useNavigate();

return useMutation({
mutationFn: logoutUserAsync,
onSuccess: () => {
navigate("/login");
queryClient.clear();
queryClient.removeQueries("user");
},
});
};
0 Replies
No replies yetBe the first to reply to this messageJoin

Did you find this page helpful?