Files
better-auth/demo/nextjs/lib/auth-client.ts
Fathi f6f1902b59 feat: add getActiveRoleMember (#4484)
Co-authored-by: KinfeMichael Tariku <65047246+Kinfe123@users.noreply.github.com>
Co-authored-by: Alex Yang <himself65@outlook.com>
2025-09-09 14:48:55 -07:00

62 lines
1.2 KiB
TypeScript

import { createAuthClient } from "better-auth/react";
import {
organizationClient,
passkeyClient,
twoFactorClient,
adminClient,
multiSessionClient,
oneTapClient,
oidcClient,
genericOAuthClient,
deviceAuthorizationClient,
lastLoginMethodClient,
} from "better-auth/client/plugins";
import { toast } from "sonner";
import { stripeClient } from "@better-auth/stripe/client";
export const client = createAuthClient({
plugins: [
organizationClient(),
twoFactorClient({
onTwoFactorRedirect() {
window.location.href = "/two-factor";
},
}),
passkeyClient(),
adminClient(),
multiSessionClient(),
oneTapClient({
clientId: process.env.NEXT_PUBLIC_GOOGLE_CLIENT_ID!,
promptOptions: {
maxAttempts: 1,
},
}),
oidcClient(),
genericOAuthClient(),
stripeClient({
subscription: true,
}),
deviceAuthorizationClient(),
lastLoginMethodClient(),
],
fetchOptions: {
onError(e) {
if (e.error.status === 429) {
toast.error("Too many requests. Please try again later.");
}
},
},
});
export const {
signUp,
signIn,
signOut,
useSession,
organization,
useListOrganizations,
useActiveOrganization,
useActiveMember,
useActiveMemberRole,
} = client;