├── .env.example ├── .eslintrc.json ├── .gitignore ├── CHANGELOG.md ├── README.md ├── docker-compose.yml ├── next.config.mjs ├── package.json ├── prisma ├── migrations │ ├── 20240829155609_init │ │ └── migration.sql │ ├── 20240829161751_ │ │ └── migration.sql │ ├── 20240830061537_init │ │ └── migration.sql │ └── migration_lock.toml └── schema │ ├── account.prisma │ ├── schema.prisma │ ├── session.prisma │ └── user.prisma ├── public ├── example.png ├── example1.png ├── example2.png ├── example3.png ├── github-intro.png ├── ic-facebook.png ├── ic-github.png ├── ic-google.png ├── ic-line.png ├── logo.png ├── next.svg ├── og-image.png └── vercel.svg ├── src ├── app │ ├── api │ │ ├── auth │ │ │ └── [...nextauth] │ │ │ │ └── route.ts │ │ ├── register │ │ │ └── route.ts │ │ ├── users │ │ │ ├── avatar │ │ │ │ └── route.ts │ │ │ ├── resetPassword │ │ │ │ └── route.ts │ │ │ ├── route.ts │ │ │ └── sendResetPasswordEmail │ │ │ │ └── route.ts │ │ └── verify │ │ │ └── route.ts │ ├── favicon.ico │ ├── forgotPassword │ │ └── page.tsx │ ├── globals.css │ ├── layout.tsx │ ├── page.tsx │ ├── register │ │ └── page.tsx │ ├── repository │ │ ├── user.ts │ │ └── verification.ts │ ├── resetPassword │ │ └── page.tsx │ ├── service │ │ ├── email │ │ │ ├── index.ts │ │ │ ├── resetPassword.ts │ │ │ ├── verify.ts │ │ │ └── welcome.ts │ │ ├── resetPassword │ │ │ └── index.ts │ │ └── verification │ │ │ └── index.ts │ ├── signin │ │ └── page.tsx │ └── verification │ │ ├── Verify.tsx │ │ └── page.tsx ├── auth.ts ├── components │ ├── client │ │ ├── Button │ │ │ └── index.tsx │ │ ├── FacebookSigninButton.tsx │ │ ├── GithubSigninButton.tsx │ │ ├── GoogleSigninButton.tsx │ │ ├── LineSigninButton.tsx │ │ ├── RegisterForm.tsx │ │ ├── ResetPasswordForm.tsx │ │ ├── SendForgotPasswordLinkForm.tsx │ │ ├── SigninForm.tsx │ │ ├── SignoutButton.tsx │ │ ├── TextField │ │ │ └── index.tsx │ │ ├── Title.tsx │ │ ├── UploadAvatarDialog.tsx │ │ ├── UserAvatar.tsx │ │ └── UserList.tsx │ └── email │ │ ├── ResetPassword.tsx │ │ ├── SigninWelcome.tsx │ │ └── Verify.tsx ├── hooks │ └── useDisclosure.ts ├── providers │ ├── Provider.tsx │ └── constants.tsx └── theme.ts ├── tsconfig.json └── yarn.lock /.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/.env.example -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/.gitignore -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/README.md -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/docker-compose.yml -------------------------------------------------------------------------------- /next.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/next.config.mjs -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/package.json -------------------------------------------------------------------------------- /prisma/migrations/20240829155609_init/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/prisma/migrations/20240829155609_init/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20240829161751_/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/prisma/migrations/20240829161751_/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/20240830061537_init/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/prisma/migrations/20240830061537_init/migration.sql -------------------------------------------------------------------------------- /prisma/migrations/migration_lock.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/prisma/migrations/migration_lock.toml -------------------------------------------------------------------------------- /prisma/schema/account.prisma: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/prisma/schema/account.prisma -------------------------------------------------------------------------------- /prisma/schema/schema.prisma: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/prisma/schema/schema.prisma -------------------------------------------------------------------------------- /prisma/schema/session.prisma: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/prisma/schema/session.prisma -------------------------------------------------------------------------------- /prisma/schema/user.prisma: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/prisma/schema/user.prisma -------------------------------------------------------------------------------- /public/example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/public/example.png -------------------------------------------------------------------------------- /public/example1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/public/example1.png -------------------------------------------------------------------------------- /public/example2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/public/example2.png -------------------------------------------------------------------------------- /public/example3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/public/example3.png -------------------------------------------------------------------------------- /public/github-intro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/public/github-intro.png -------------------------------------------------------------------------------- /public/ic-facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/public/ic-facebook.png -------------------------------------------------------------------------------- /public/ic-github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/public/ic-github.png -------------------------------------------------------------------------------- /public/ic-google.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/public/ic-google.png -------------------------------------------------------------------------------- /public/ic-line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/public/ic-line.png -------------------------------------------------------------------------------- /public/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/public/logo.png -------------------------------------------------------------------------------- /public/next.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/public/next.svg -------------------------------------------------------------------------------- /public/og-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/public/og-image.png -------------------------------------------------------------------------------- /public/vercel.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/public/vercel.svg -------------------------------------------------------------------------------- /src/app/api/auth/[...nextauth]/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/app/api/auth/[...nextauth]/route.ts -------------------------------------------------------------------------------- /src/app/api/register/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/app/api/register/route.ts -------------------------------------------------------------------------------- /src/app/api/users/avatar/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/app/api/users/avatar/route.ts -------------------------------------------------------------------------------- /src/app/api/users/resetPassword/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/app/api/users/resetPassword/route.ts -------------------------------------------------------------------------------- /src/app/api/users/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/app/api/users/route.ts -------------------------------------------------------------------------------- /src/app/api/users/sendResetPasswordEmail/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/app/api/users/sendResetPasswordEmail/route.ts -------------------------------------------------------------------------------- /src/app/api/verify/route.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/app/api/verify/route.ts -------------------------------------------------------------------------------- /src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/app/favicon.ico -------------------------------------------------------------------------------- /src/app/forgotPassword/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/app/forgotPassword/page.tsx -------------------------------------------------------------------------------- /src/app/globals.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/app/globals.css -------------------------------------------------------------------------------- /src/app/layout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/app/layout.tsx -------------------------------------------------------------------------------- /src/app/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/app/page.tsx -------------------------------------------------------------------------------- /src/app/register/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/app/register/page.tsx -------------------------------------------------------------------------------- /src/app/repository/user.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/app/repository/user.ts -------------------------------------------------------------------------------- /src/app/repository/verification.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/app/repository/verification.ts -------------------------------------------------------------------------------- /src/app/resetPassword/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/app/resetPassword/page.tsx -------------------------------------------------------------------------------- /src/app/service/email/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/app/service/email/index.ts -------------------------------------------------------------------------------- /src/app/service/email/resetPassword.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/app/service/email/resetPassword.ts -------------------------------------------------------------------------------- /src/app/service/email/verify.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/app/service/email/verify.ts -------------------------------------------------------------------------------- /src/app/service/email/welcome.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/app/service/email/welcome.ts -------------------------------------------------------------------------------- /src/app/service/resetPassword/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/app/service/resetPassword/index.ts -------------------------------------------------------------------------------- /src/app/service/verification/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/app/service/verification/index.ts -------------------------------------------------------------------------------- /src/app/signin/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/app/signin/page.tsx -------------------------------------------------------------------------------- /src/app/verification/Verify.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/app/verification/Verify.tsx -------------------------------------------------------------------------------- /src/app/verification/page.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/app/verification/page.tsx -------------------------------------------------------------------------------- /src/auth.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/auth.ts -------------------------------------------------------------------------------- /src/components/client/Button/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/components/client/Button/index.tsx -------------------------------------------------------------------------------- /src/components/client/FacebookSigninButton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/components/client/FacebookSigninButton.tsx -------------------------------------------------------------------------------- /src/components/client/GithubSigninButton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/components/client/GithubSigninButton.tsx -------------------------------------------------------------------------------- /src/components/client/GoogleSigninButton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/components/client/GoogleSigninButton.tsx -------------------------------------------------------------------------------- /src/components/client/LineSigninButton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/components/client/LineSigninButton.tsx -------------------------------------------------------------------------------- /src/components/client/RegisterForm.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/components/client/RegisterForm.tsx -------------------------------------------------------------------------------- /src/components/client/ResetPasswordForm.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/components/client/ResetPasswordForm.tsx -------------------------------------------------------------------------------- /src/components/client/SendForgotPasswordLinkForm.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/components/client/SendForgotPasswordLinkForm.tsx -------------------------------------------------------------------------------- /src/components/client/SigninForm.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/components/client/SigninForm.tsx -------------------------------------------------------------------------------- /src/components/client/SignoutButton.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/components/client/SignoutButton.tsx -------------------------------------------------------------------------------- /src/components/client/TextField/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/components/client/TextField/index.tsx -------------------------------------------------------------------------------- /src/components/client/Title.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/components/client/Title.tsx -------------------------------------------------------------------------------- /src/components/client/UploadAvatarDialog.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/components/client/UploadAvatarDialog.tsx -------------------------------------------------------------------------------- /src/components/client/UserAvatar.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/components/client/UserAvatar.tsx -------------------------------------------------------------------------------- /src/components/client/UserList.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/components/client/UserList.tsx -------------------------------------------------------------------------------- /src/components/email/ResetPassword.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/components/email/ResetPassword.tsx -------------------------------------------------------------------------------- /src/components/email/SigninWelcome.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/components/email/SigninWelcome.tsx -------------------------------------------------------------------------------- /src/components/email/Verify.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/components/email/Verify.tsx -------------------------------------------------------------------------------- /src/hooks/useDisclosure.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/hooks/useDisclosure.ts -------------------------------------------------------------------------------- /src/providers/Provider.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/providers/Provider.tsx -------------------------------------------------------------------------------- /src/providers/constants.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/providers/constants.tsx -------------------------------------------------------------------------------- /src/theme.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/src/theme.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/tsconfig.json -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Dannyisadog/nextjs-authentication-template/HEAD/yarn.lock --------------------------------------------------------------------------------