CRIAR PROJETO SVELTEKIT
CONFIGURAR PASTA .vscode.
MUDAR TRAILING COMMA PARA "all" NO .prettierrc.
npm run format
npm run lint
npx sv add tailwindcss
npx sv add drizzle
CRIAR O BANCO DE DADOS bancoDrizzleBetterauth MANUALMENTE.
ARQUIVO .env:
# DRIZZLE:
DATABASE_URL="postgres://postgres:password@localhost:5432/bancoDrizzleBetterauth"
npx drizzle-kit push # OU npm run db:push
npm install better-auth
# DRIZZLE:
DATABASE_URL="postgres://postgres:password@localhost:5432/bancoDrizzleBetterauth"
# BETTER AUTH:
BETTER_AUTH_SECRET=... # GERE ESTA CHAVE EM https://www.better-auth.com/docs/installation
BETTER_AUTH_URL=http://localhost:5173
# GOOGLE (USAR AS CHAVES OBTIDAS NO GOOGLE DEVELOPER CONSOLE):
GOOGLE_CLIENT_ID=...
GOOGLE_CLIENT_SECRET=...
import { getRequestEvent } from '$app/server';
import { GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET } from '$env/static/private';
import { db } from '$lib/server/db'; // DRIZZLE
import * as schema from '$lib/server/db/schema';
import { betterAuth } from 'better-auth';
import { drizzleAdapter } from 'better-auth/adapters/drizzle';
import { sveltekitCookies } from 'better-auth/svelte-kit';
export const auth = betterAuth({
account: {
accountLinking: {
enabled: true,
trustedProviders: ['google'],
},
},
database: drizzleAdapter(db, {
provider: 'pg', // OR "MYSQL", "SQLITE"
camelCase: true,
schema: {
...schema,
user: schema.user,
},
}),
socialProviders: {
google: {
prompt: 'select_account',
clientId: GOOGLE_CLIENT_ID as string,
clientSecret: GOOGLE_CLIENT_SECRET as string,
},
},
plugins: [sveltekitCookies(getRequestEvent)], // MAKE SURE THIS IS THE LAST PLUGIN IN THE ARRAY
});
npx @better-auth/cli generate --config src/lib/betterauth/auth.server.ts --output src/lib/server/db/schemaBetterAuth.ts
export * from './schemaBetterAuth';
npx drizzle-kit push # OU npm run db:push
CRIAR ARQUIVO src/lib/server/db/camposAdicionados.ts.
INSERIR MANUALMENTE O ARQUIVO camposAdicionados.ts NO schemaBetterAuth.ts.
CRIAR ARQUIVO src/lib/betterauth/funcaoUsuario.ts.
CRIAR ARQUIVO src/lib/betterauth/funcaoSecao.ts.
PREENCHER app.d.ts
CRIAR ARQUIVO src/lib/betterauth/handleBetterAuth.ts.
CRIAR src/hooks.server.ts.
CRIAR ARQUIVO src/lib/betterauth/client.ts.