From 67abfbcb118a23081adde1852018147fb6d68f6b Mon Sep 17 00:00:00 2001 From: Vikas Thoutam Date: Tue, 28 Jul 2026 11:57:40 -0500 Subject: [PATCH 1/2] feat: migrate to better-auth, update dependencies --- .env.example | 16 +- README.md | 4 +- app.vue | 44 +- cert-dev.pem | 19 - components/PageHeader.vue | 9 +- lib/auth-client.ts | 13 + lib/auth.ts | 64 + nuxt.config.ts | 77 +- package.json | 29 +- pages/admin.vue | 25 +- pages/database.vue | 21 +- pages/editStudent.vue | 33 +- pages/editUser.vue | 10 +- pages/entry.vue | 37 +- pages/index.vue | 6 +- pages/login.vue | 100 + pnpm-lock.yaml | 6117 +++++++---------- .../20250427182820_initial/migration.sql | 34 - .../20260728051732_init/migration.sql | 90 + prisma/schema.prisma | 139 +- prisma/seed.ts | 42 + server/api/auth/[...all].ts | 5 + server/api/auth0.ts | 16 - server/api/callback.post.ts | 5 - server/api/login.get.ts | 5 - server/api/logout-complete.get.ts | 5 - server/api/logout.get.ts | 6 - server/api/user.delete.ts | 53 +- server/api/user.get.ts | 11 +- server/api/user.post.ts | 76 +- server/api/user.put.ts | 69 +- server/middleware/auth.ts | 70 +- src/assets/fonts.css | 18 +- src/assets/tailwind.css | 6 + src/style.css | 3 - tailwind.config.js | 14 - 36 files changed, 3386 insertions(+), 3905 deletions(-) delete mode 100644 cert-dev.pem create mode 100644 lib/auth-client.ts create mode 100644 lib/auth.ts create mode 100644 pages/login.vue delete mode 100644 prisma/migrations/20250427182820_initial/migration.sql create mode 100644 prisma/migrations/20260728051732_init/migration.sql create mode 100644 prisma/seed.ts create mode 100644 server/api/auth/[...all].ts delete mode 100644 server/api/auth0.ts delete mode 100644 server/api/callback.post.ts delete mode 100644 server/api/login.get.ts delete mode 100644 server/api/logout-complete.get.ts delete mode 100644 server/api/logout.get.ts create mode 100644 src/assets/tailwind.css delete mode 100644 src/style.css delete mode 100644 tailwind.config.js diff --git a/.env.example b/.env.example index 97001f0..d79bb88 100644 --- a/.env.example +++ b/.env.example @@ -1,5 +1,11 @@ -DATABASE_URL="file:${PWD}/prisma/dev.db" -NUXT_AUTH0_BASE_URL='http://localhost:3000' -NUXT_AUTH0_ISSUER_BASE_URL='https://march-to-the-polls.us.auth0.com' -NUXT_AUTH0_CLIENT_ID='DxkcUTlJbv9MKRGG7I7SEliHMl8ufN5a' -NUXT_AUTH0_CLIENT_SECRET='EXAMPLE_CLIENT_SECRET' +DATABASE_URL="file:./dev.db" +BETTER_AUTH_SECRET="replace-with-a-32-char-secret" +BETTER_AUTH_URL="http://localhost:3000" +SEED_ADMIN_EMAIL="admin@example.org" + +# SMTP configuration for sending OTP emails +SMTP_HOST="smtp.example.com" +SMTP_PORT=587 +SMTP_USER="your-email@example.com" +SMTP_PASS="your-email-password" +SMTP_FROM="March to the Polls " diff --git a/README.md b/README.md index acef2cc..fb9e6e8 100644 --- a/README.md +++ b/README.md @@ -21,8 +21,8 @@ Central page with MTTP logo to welcome you to the website ## Third party integrations -# Auth0 -Takes care of all user authentication to signup, login, and logout of the webpage +# BetterAuth +Handles user authentication via email OTP (one-time password) for login ## Tech Stack # Frameworks diff --git a/app.vue b/app.vue index 39b1696..a6296be 100644 --- a/app.vue +++ b/app.vue @@ -1,24 +1,20 @@ - - - - \ No newline at end of file + + + + diff --git a/cert-dev.pem b/cert-dev.pem deleted file mode 100644 index 79a911c..0000000 --- a/cert-dev.pem +++ /dev/null @@ -1,19 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDGTCCAgGgAwIBAgIJZCpCKBmDtgYRMA0GCSqGSIb3DQEBCwUAMCoxKDAmBgNV -BAMTH21hcmNoLXRvLXRoZS1wb2xscy51cy5hdXRoMC5jb20wHhcNMjMwMjI1MTkw -NjM5WhcNMzYxMTAzMTkwNjM5WjAqMSgwJgYDVQQDEx9tYXJjaC10by10aGUtcG9s -bHMudXMuYXV0aDAuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA -wIvAo8CTer/JR9/k28m+GIGaSvBVkar6pK5xsdU0VrCxxuhNQ7hPtQPp+nDcdFRU -HFj3upBSXlXXuzDEpWlJU745a9MpW3ew1JzemkCbbbrper3zEgjHmmXar5adppcU -QtRF86bu5aDWiMrot99fOgzBdO+hhMgC7nAMMSQpDQFOjznh49YmTT1flAvLN5s+ -hSsa+v7UV24NPqsjk2WY4slhhXnuAOgJqrvtmR9LUG9/h/tgkrtcGxDaHS1AN9PF -9h+0UnxISL1GaICxa5TOtNDZx1NrF14Js2/GQeuBBZ0yB4EAaimzhwoizQIwUuIK -Cmnia50MxACv9POnYOrv9wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud -DgQWBBRGDHC1c66KPISCD0acevq4jPSVgDAOBgNVHQ8BAf8EBAMCAoQwDQYJKoZI -hvcNAQELBQADggEBALg0SfexvErxiCUQFY3Z4G/hb+P4eVLCDt8O4Qd0xXoXfHw9 -v0aeipYZgQMRCwwQncPYNcRFwzcoqvY1Izk5wXCK7YIcPKoBnLYVRPV5VYz8jPgo -6EmrBAD2g3vxXn/DvlNEEsUQIcFHY/l4vwAMJKocHcvhKTziSogDcpuCDN/RWdWW -i42fMe9LOSZ/kYFykxfirh6fhyW2gQjYpfSLpzLZsVwlNTqWT/wmGADCIJ+T5kwb -LrmHyxGOmWfAKfnPHH304XvXaiivIP33LenvwaesRtZB/sFSB5snTg6g7YrIflos -nI1DkztRCiRh+Lh8uRcQg518quCJfuLwaXj/iGc= ------END CERTIFICATE----- \ No newline at end of file diff --git a/components/PageHeader.vue b/components/PageHeader.vue index c76069a..bd8a612 100644 --- a/components/PageHeader.vue +++ b/components/PageHeader.vue @@ -21,7 +21,7 @@
  • View Students
  • Admin
  • -
  • Logout
  • +
  • Logout