passive-yellow
passive-yellow14mo ago

Log Out User If JWT has expired.

@kapa.ai , Lets say i am logged in as a user in my refine app and my jwt token has expired, then when i visit my application, i am on my user page. The message from api showing unauthorized, as it should. But instead of this, shouldn't the user just logout automatically?
2 Replies
kapa.ai
kapa.ai14mo ago
Hi @jenish7822. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave: ---------------------- Yes, you can automatically log out the user when their JWT token has expired. To achieve this, you can use the onError method in your authProvider. The onError method is called when you get an error response from the API. You can create your own business logic to handle the error, such as refreshing the token or logging out the user. Here's an example of how to log out the user if the API returns a 401 or 403 error:
import { AuthBindings } from "@refinedev/core";

const authProvider: AuthBindings = {
// ...
onError: async (error) => {
if (error.status === 401 || error.status === 403) {
return {
logout: true,
redirectTo: "/login",
error,
};
}

return {};
},
// ...
};
import { AuthBindings } from "@refinedev/core";

const authProvider: AuthBindings = {
// ...
onError: async (error) => {
if (error.status === 401 || error.status === 403) {
return {
logout: true,
redirectTo: "/login",
error,
};
}

return {};
},
// ...
};
In this example, if the API returns a 401 (Unauthorized) or 403 (Forbidden) error, the user will be logged out and redirected to the login page. For more information, refer to the onError method documentation (https://refine.dev/docs/tutorial/understanding-authprovider/create-authprovider#onerror). ---------------------- Note: you can ask me a follow up question by @ mentioning me again :speech_balloon: ----------------------
kapa.ai
kapa.ai14mo ago
<@713646363425898567> kapa.ai is still learning and improving, please let us how it did by reacting below