fix: infinite redirect issue (#583)

This commit is contained in:
Hayden 2023-10-10 08:43:44 -05:00 committed by GitHub
parent d8482f3a13
commit ae4b95301f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 6 deletions

View file

@ -45,7 +45,8 @@ class AuthContext implements IAuthContext {
private _attachmentToken: CookieRef<string | null>; private _attachmentToken: CookieRef<string | null>;
get token() { get token() {
return this._token.value === "true"; // @ts-ignore sometimes it's a boolean I guess?
return this._token.value === "true" || this._token.value === true;
} }
get attachmentToken() { get attachmentToken() {
@ -66,11 +67,11 @@ class AuthContext implements IAuthContext {
} }
isExpired() { isExpired() {
return this.token; return !this.token;
} }
isAuthorized() { isAuthorized() {
return !this.isExpired(); return this.token;
} }
invalidateSession() { invalidateSession() {
@ -79,7 +80,6 @@ class AuthContext implements IAuthContext {
// Delete the cookies // Delete the cookies
this._token.value = null; this._token.value = null;
this._attachmentToken.value = null; this._attachmentToken.value = null;
console.log("Session invalidated"); console.log("Session invalidated");
} }

View file

@ -3,15 +3,19 @@ export default defineNuxtRouteMiddleware(async () => {
const api = useUserApi(); const api = useUserApi();
if (!ctx.isAuthorized()) { if (!ctx.isAuthorized()) {
if (window.location.pathname !== "/") {
return navigateTo("/"); return navigateTo("/");
} }
}
if (!ctx.user) { if (!ctx.user) {
console.log("Fetching user data"); console.log("Fetching user data");
const { data, error } = await api.user.self(); const { data, error } = await api.user.self();
if (error) { if (error) {
if (window.location.pathname !== "/") {
return navigateTo("/"); return navigateTo("/");
} }
}
ctx.user = data.item; ctx.user = data.item;
} }