32 lines
925 B
TypeScript
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);
|
|
},
|
|
},
|
|
});
|
|
}
|