feat: Automatically log out user if session has expired or is invalid

This commit is contained in:
Jesse Wierzbinski 2024-05-16 21:19:06 -10:00
parent 44e6112335
commit 9347b7ac25
No known key found for this signature in database

View file

@ -2,6 +2,8 @@ import type { Mastodon } from "megalodon";
import type { InstanceWithExtra } from "./Instance";
export const useCacheRefresh = (client: MaybeRef<Mastodon | null>) => {
if (process.server) return;
const tokenData = useTokenData();
const me = useMe();
const instance = useInstance();
@ -9,20 +11,35 @@ export const useCacheRefresh = (client: MaybeRef<Mastodon | null>) => {
// Refresh custom emojis and instance data and me on every reload
watchEffect(async () => {
console.log("Clearing cache");
if (tokenData.value) {
await toValue(client)
?.verifyAccountCredentials()
.then((res) => {
me.value = res.data;
})
.catch((err) => {
const code = err.response.status;
if (code === 401) {
// Reset tokenData
tokenData.value = null;
useEvent("notification:new", {
type: "error",
title: "Your session has expired",
message:
"You have been logged out. Please log in again.",
});
}
});
await toValue(client)
?.getInstanceCustomEmojis()
.then((res) => {
customEmojis.value = res.data;
});
}
toValue(client)
?.getInstanceCustomEmojis()
.then((res) => {
customEmojis.value = res.data;
});
toValue(client)
?.getInstance()
.then((res) => {