| | | 1 | | import { redirect } from "react-router"; |
| | | 2 | | import type { Route } from "./+types/auth.signout"; |
| | | 3 | | import { buildLogoutUrl } from "~/lib/oidc.server"; |
| | | 4 | | import { clearCookie, destroySession, getSid, getSession } from "~/lib/session.server"; |
| | | 5 | | |
| | 0 | 6 | | export async function loader({ request }: Route.LoaderArgs) { |
| | 0 | 7 | | const sid = getSid(request); |
| | | 8 | | let idToken: string | undefined; |
| | | 9 | | |
| | 0 | 10 | | if (sid) { |
| | 0 | 11 | | const sess = await getSession(request); |
| | 0 | 12 | | idToken = sess?.data.idToken; |
| | 0 | 13 | | await destroySession(sid); |
| | | 14 | | } |
| | | 15 | | |
| | 0 | 16 | | const logoutUrl = await buildLogoutUrl(idToken, request); |
| | 0 | 17 | | return redirect(logoutUrl, { |
| | | 18 | | headers: { "Set-Cookie": clearCookie() }, |
| | | 19 | | }); |
| | | 20 | | } |
| | | 21 | | |
| | 0 | 22 | | export default function AuthSignOut() { |
| | 0 | 23 | | return null; |
| | | 24 | | } |