fix: logout redirect (#802)

This commit is contained in:
2025-12-19 17:19:09 +01:00
committed by GitHub
parent 37a454f283
commit f0ee7b531a
2 changed files with 12 additions and 1 deletions

View File

@@ -2,13 +2,19 @@
import { Spinner, Link } from "@chakra-ui/react"; import { Spinner, Link } from "@chakra-ui/react";
import { useAuth } from "../lib/AuthProvider"; import { useAuth } from "../lib/AuthProvider";
import { usePathname } from "next/navigation";
import { getLogoutRedirectUrl } from "../lib/auth";
export default function UserInfo() { export default function UserInfo() {
const auth = useAuth(); const auth = useAuth();
const pathname = usePathname();
const status = auth.status; const status = auth.status;
const isLoading = status === "loading"; const isLoading = status === "loading";
const isAuthenticated = status === "authenticated"; const isAuthenticated = status === "authenticated";
const isRefreshing = status === "refreshing"; const isRefreshing = status === "refreshing";
const callbackUrl = getLogoutRedirectUrl(pathname);
return isLoading ? ( return isLoading ? (
<Spinner size="xs" className="mx-3" /> <Spinner size="xs" className="mx-3" />
) : !isAuthenticated && !isRefreshing ? ( ) : !isAuthenticated && !isRefreshing ? (
@@ -26,7 +32,7 @@ export default function UserInfo() {
<Link <Link
href="#" href="#"
className="font-light px-2" className="font-light px-2"
onClick={() => auth.signOut({ callbackUrl: "/" })} onClick={() => auth.signOut({ callbackUrl })}
> >
Log out Log out
</Link> </Link>

View File

@@ -18,3 +18,8 @@ export const LOGIN_REQUIRED_PAGES = [
export const PROTECTED_PAGES = new RegExp( export const PROTECTED_PAGES = new RegExp(
LOGIN_REQUIRED_PAGES.map((page) => `^${page}$`).join("|"), LOGIN_REQUIRED_PAGES.map((page) => `^${page}$`).join("|"),
); );
export function getLogoutRedirectUrl(pathname: string): string {
const transcriptPagePattern = /^\/transcripts\/[^/]+$/;
return transcriptPagePattern.test(pathname) ? pathname : "/";
}