sveltekitDrizzleBetterauth Svelte Themes

Sveltekitdrizzlebetterauth

PROJETO

SVELTEKIT

  • CRIAR PROJETO SVELTEKIT

  • CONFIGURAR PASTA .vscode.

  • MUDAR TRAILING COMMA PARA "all" NO .prettierrc.

    npm run format
    npm run lint
    

TAILWIND

  • ADICIONAR TAILWIND:
npx sv add tailwindcss

DRIZZLE

  • ADICIONAR DRIZZLE:
npx sv add drizzle
  • CRIAR O BANCO DE DADOS bancoDrizzleBetterauth MANUALMENTE.

  • ARQUIVO .env:

# DRIZZLE:
DATABASE_URL="postgres://postgres:password@localhost:5432/bancoDrizzleBetterauth"
  • APLICAR O SCHEMA NO BANCO DE DADOS:
npx drizzle-kit push # OU npm run db:push

BETTER AUTH

  • INSTALAR PACOTES:
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=...
  • ARQUIVO src/lib/betterauth/auth.server.ts:
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
});
  • GERE O SCHEMA DO BETTER AUTH NO ARQUIVO src/lib/server/db/schemaBetterAuth:
npx @better-auth/cli generate --config src/lib/betterauth/auth.server.ts --output src/lib/server/db/schemaBetterAuth.ts
  • ARQUIVO src/lib/server/db/schema.ts:
export * from './schemaBetterAuth';
  • APLICAR O NOVO SCHEMA DO BETTER AUTH NO BANCO DE DADOS:
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.

Top categories

Loading Svelte Themes