metatron-open-seo/src/lib/auth-client.ts

32 lines
925 B
TypeScript

import { createAuthClient } from "better-auth/react";
import {
inferAdditionalFields,
organizationClient,
} from "better-auth/client/plugins";
import { captureClientEvent, resetAnalyticsUser } from "@/client/lib/posthog";
import { userAdditionalFields } from "@/lib/auth-options";
import { getSignInHrefForLocation } from "@/lib/auth-redirect";
export const authClient = createAuthClient({
baseURL: typeof window !== "undefined" ? window.location.origin : "",
plugins: [
organizationClient(),
inferAdditionalFields({ user: userAdditionalFields }),
],
});
export const { useSession } = authClient;
export function signOutAndRedirect() {
const signInHref = getSignInHrefForLocation(window.location);
captureClientEvent("auth:sign_out");
resetAnalyticsUser();
void authClient.signOut({
fetchOptions: {
onSuccess: () => {
window.location.assign(signInHref);
},
},
});
}