{"id":15164494,"url":"https://github.com/kalix127/Nuxt3-LuciaAuth-Template","last_synced_at":"2025-09-30T19:31:11.359Z","repository":{"id":253729753,"uuid":"844304151","full_name":"kalix127/Nuxt3-LuciaAuth-Template","owner":"kalix127","description":"A Nuxt.js Authentication template (login, register, email validation, reset password and oauth) using Lucia-Auth, Prisma, PostgreSQL and Mailtrap.","archived":false,"fork":false,"pushed_at":"2025-01-02T13:59:27.000Z","size":383,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-20T08:48:28.460Z","etag":null,"topics":["authentication","lucia-auth","mailtrap","nuxtjs","postgresql","prisma"],"latest_commit_sha":null,"homepage":"https://nuxt3-lucia-auth-template.vercel.app","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kalix127.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"kalix127"}},"created_at":"2024-08-19T01:12:12.000Z","updated_at":"2025-06-05T08:25:51.000Z","dependencies_parsed_at":"2024-08-19T05:29:44.156Z","dependency_job_id":"25d501d4-3b6c-46d9-83ad-963c73233516","html_url":"https://github.com/kalix127/Nuxt3-LuciaAuth-Template","commit_stats":{"total_commits":11,"total_committers":1,"mean_commits":11.0,"dds":0.0,"last_synced_commit":"4cb223014b14940676fe2749aef822c5e30e3d17"},"previous_names":["gianlucaiavicoli/nuxt3-luciaauth-template","kalix127/nuxt3-luciaauth-template"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/kalix127/Nuxt3-LuciaAuth-Template","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kalix127%2FNuxt3-LuciaAuth-Template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kalix127%2FNuxt3-LuciaAuth-Template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kalix127%2FNuxt3-LuciaAuth-Template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kalix127%2FNuxt3-LuciaAuth-Template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kalix127","download_url":"https://codeload.github.com/kalix127/Nuxt3-LuciaAuth-Template/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kalix127%2FNuxt3-LuciaAuth-Template/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277746958,"owners_count":25870057,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-30T02:00:09.208Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["authentication","lucia-auth","mailtrap","nuxtjs","postgresql","prisma"],"created_at":"2024-09-27T03:24:34.266Z","updated_at":"2025-09-30T19:31:10.805Z","avatar_url":"https://github.com/kalix127.png","language":"Vue","funding_links":["https://github.com/sponsors/kalix127"],"categories":[],"sub_categories":[],"readme":"# Nuxt3 Lucia-Auth Template\n\nA Nuxt.js Authentication template (login, register, email validation, reset password and oauth) using Lucia-Auth, Prisma, PostgreSQL and Mailtrap.\n\n⚠️ **Note:** Please be aware that Lucia-Auth is scheduled to be deprecated in March 2025. For more details, refer to [Lucia-Auth Deprecation Discussion](https://github.com/lucia-auth/lucia/discussions/1714).\n\n## Features\n\n### Authentication\n- **Register and Login with Credentials**: Users can create an account and log in using their email and password.\n- **OAuth Integration (GitHub \u0026 Google)**: Users can authenticate using their GitHub or Google accounts.\n- **Password Reset via Email**: Users can reset their password through an email link.\n- **Email Verification**: Send verification emails to confirm user email addresses.\n\n### Linked OAuth and Credentials-Based Accounts\n- **Seamless Login**: If a user registers with their email (e.g., `example@example.com`) and later logs in with Google or GitHub using the same email address, they will be logged into their existing account. This ensures a unified user experience regardless of how they sign in.\n- **Unified Accounts**: Whether the user signs up using credentials or OAuth, they will only have one account associated with their email, avoiding duplicate accounts and providing a seamless login experience.\n\n### Pre-Built Pages\n- **Tailwind CSS and DaisyUI Styling**: The template includes pre-built pages that are fully styled using Tailwind CSS and DaisyUI.\n- **Form Validation (Client and Server-Side)**: All forms on the pre-built pages are validated both on the client side using Zod and VeeValidate.\n- **Pages:**\n  - Homepage: An accessible page for anyone visiting the site.\n  - Protected Page: A page that requires users to be signed in to access.\n  - Login Page\n  - Register Page\n  - Reset Password Page (Send Request)\n  - Reset Password Page (Confirm)\n  - Email Verification Page\n\n## Setup\n\nConfigure Environment Variables:\n\n- Rename the `.env.example` file to `.env`:\n\n- Populate the `.env` file with the following environment variables:\n\n### Node.js\n- `NODE_ENV=\"\"`\n- `ORIGIN=\"\"`\n\n### OAuth\n- `GITHUB_CLIENT_ID=\"\"`\n- `GITHUB_CLIENT_SECRET=\"\"`\n- `GOOGLE_CLIENT_ID=\"\"`\n- `GOOGLE_CLIENT_SECRET=\"\"`\n\n### PostgreSQL URI\n- `DATABASE_URL=\"\"`\n\n### Email\n- `MAILTRAP_ENDPOINT=''`\n- `MAILTRAP_SENDER=''`\n- `MAILTRAP_PASSWORD=''`\n- `MAILTRAP_TEMPLATE_UUID_RESET_PASSWORD=''`\n- `MAILTRAP_TEMPLATE_UUID_VERIFY_EMAIL=''`\n\n### Utils\n- `COMPANY_NAME=''`\n- `COMPANY_INFO_EMAIL=''`\n- `COMPANY_SUPPORT_EMAIL=''`\n- `COMPANY_CONTACT_EMAIL=''`\n\nMake sure to install the dependencies:\n\n```bash\nnpm install\n```\n\n## Setup Prisma\n\nAfter installing the dependencies, you need to set up Prisma. First, run the migration command and specify a name for the migration. You can use `\"init\"` as the name:\n\n```bash\nnpx prisma migrate dev --name init\n```\n\nNext, generate the Prisma client:\n\n```bash\nnpx prisma generate\n```\n\n## Development Server\n\nStart the development server on `http://localhost:3000`:\n\n```bash\nnpm run dev\n```\n\n## Production\n\nBuild the application for production:\n\n```bash\nnpm run build\n```\n\nLocally preview production build:\n\n```bash\nnpm run preview\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkalix127%2FNuxt3-LuciaAuth-Template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkalix127%2FNuxt3-LuciaAuth-Template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkalix127%2FNuxt3-LuciaAuth-Template/lists"}