© 2026 Hedgehog Software, LLC
serverAuth.api.getSession({ headers })
clientAuth.useSession()
snowflakes
cover_image
import { betterAuth } from "better-auth"; import { APIError } from "better-auth/api"; import { drizzleAdapter } from "better-auth/adapters/drizzle"; import { db } from "~/server/db"; import { admin, createAuthMiddleware, username } from "better-auth/plugins"; import { ac, roles } from "~/server/auth/permissions"; import { nextCookies } from "better-auth/next-js"; export const auth = betterAuth({ user: { additionalFields: { snowflakes: { fieldName: "snowflakes", type: "number", returned: true, }, cover_image: { fieldName: "cover_image", type: "string", returned: true, }, }, }, });
import { adminClient, inferAdditionalFields, usernameClient, } from "better-auth/client/plugins"; import { createAuthClient } from "better-auth/react"; import { type auth } from "~/server/auth"; import { ac, roles } from "~/server/auth/permissions"; export const authClient = createAuthClient({ plugins: [ inferAdditionalFields<typeof auth>(), adminClient({ ac, roles, }), usernameClient(), ], });
{ "user": { "name": "xxx", "email": "xxx", "emailVerified": true, "image": null, "createdAt": "2025-09-14T06:55:17.000Z", "updatedAt": "2025-09-14T06:55:17.000Z", "role": "xxx", "banned": null, "banReason": null, "banExpires": null, "username": "xxx", "displayUsername": "xxx", "id": "FDu3GLOgJ5sjSTgNUZ2Gm8fQFWijO2Fx" } }