Handle Unauthorized Error Responses
Your frontend should handle 401 responses from your C# server.
Below are some examples of how to handle any 401 Unauthorized
errors in your React frontend returned from the Auth Middleware in your C# server.
Axios Interceptor
If you're using Axios, you can create a response interceptor to handle Unauthorized responses. The typical pattern is to automatically redirect users to your login endpoint (e.g. src/api/api-client.ts
).
// api-client.ts
import axios from 'axios';
import { isUnauthorized, redirectToLogin } from '@/utils/helpers';
const apiClient = axios.create({
baseURL: `<csharp-server-domain>/api`,
headers: { 'Content-Type': 'application/json', Accept: 'application/json' },
});
// Any HTTP 401 response should redirect the user to the Login page.
const unauthorizedAccessInterceptor = (error: unknown) => {
if (isUnauthorized(error)) {
redirectToLogin();
}
return Promise.reject(error);
};
apiClient.interceptors.response.use(undefined, unauthorizedAccessInterceptor);
export { apiClient };
Catch Errors At API Request Code
To handle unauthorized errors with more precision, add custom error handling in your API request's catch block.
// example-component.ts
import axios from 'axios';
import { isUnauthorized, redirectToLogin } from '@/utils/helpers';
export function ExampleComponent() {
...
const handleApiCall = () => {
try {
const response = await axios.get(`<your-csharp-server-domain>/test`);
alert('Success!');
} catch (err: unknown) {
if (isUnauthorized(error)) {
redirectToLogin();
} else {
console.error('Unexpected error: ', err);
alert('Something went wrong!');
}
}
}
...
return <p>Hello World!</p>;
}
Updated 8 days ago
What’s Next
Let's test if your auth middleware is protecting your session endpoint.