From f1e363bbff5e4bae26b8a34560871d643f86ebbb Mon Sep 17 00:00:00 2001 From: Bereket Engida Date: Thu, 29 Aug 2024 00:10:35 +0300 Subject: [PATCH] feat: remember me and many more imporves --- dev/next-app/prisma/db.sqlite | Bin 77824 -> 114688 bytes dev/next-app/src/app/(auth)/sign-in/page.tsx | 28 ++++++- dev/next-app/src/app/layout.tsx | 12 ++- dev/next-app/src/app/page.tsx | 2 +- dev/next-app/src/components/signout.tsx | 4 +- dev/next-app/src/components/ui/sonner.tsx | 2 + dev/next-app/src/components/user-card.tsx | 49 ++++++++---- dev/next-app/src/lib/types.ts | 5 ++ dev/next-app/src/middleware.ts | 4 + packages/better-auth/package.json | 3 +- .../src/adapters/internal-adapter.ts | 11 +-- packages/better-auth/src/api/index.ts | 72 +++++++++++++++-- .../better-auth/src/api/middlewares/csrf.ts | 6 +- .../better-auth/src/api/routes/callback.ts | 15 ++-- .../better-auth/src/api/routes/session.ts | 10 ++- .../better-auth/src/api/routes/sign-in.ts | 34 ++++---- packages/better-auth/src/auth.ts | 20 ++--- packages/better-auth/src/client/base.ts | 2 +- packages/better-auth/src/client/proxy.ts | 1 + packages/better-auth/src/client/react.ts | 14 +++- .../better-auth/src/client/session-atom.ts | 60 +------------- packages/better-auth/src/init.ts | 7 +- .../src/plugins/organization/call.ts | 1 - .../src/plugins/organization/organization.ts | 47 +++++++++-- .../src/plugins/remeber-me/index.ts | 0 .../src/plugins/remeber-me/remeber-me.ts | 5 -- packages/better-auth/src/types/context.ts | 13 ++++ packages/better-auth/src/types/index.ts | 1 + packages/better-auth/src/types/models.ts | 73 ++++++++++++++++++ packages/better-auth/src/types/options.ts | 4 +- packages/better-auth/src/types/plugins.ts | 27 ++++++- packages/better-auth/src/utils/base-url.ts | 15 +++- packages/better-auth/tsup.config.ts | 1 + pnpm-lock.yaml | 28 +++---- todo.md | 2 +- tsconfig.json | 1 + 36 files changed, 401 insertions(+), 178 deletions(-) create mode 100644 dev/next-app/src/lib/types.ts delete mode 100644 packages/better-auth/src/plugins/remeber-me/index.ts delete mode 100644 packages/better-auth/src/plugins/remeber-me/remeber-me.ts create mode 100644 packages/better-auth/src/types/context.ts create mode 100644 packages/better-auth/src/types/models.ts diff --git a/dev/next-app/prisma/db.sqlite b/dev/next-app/prisma/db.sqlite index 73da89710c8722c5a8dc3248d42fc4d1f45f245a..13829ea95d14ecc0f7c72960e8096abb5abf6911 100644 GIT binary patch literal 114688 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 delta 903 zcmZo@U~hQ9GC_)sL4$#TL3pBq9TS7b#so=e4r4=019MYLgUOB3v5E%fR;CtK#wL1Z z2F6j1S{y7*nzn}KMkW?;RR?q$CpXA&DTBR306V>X(q)3Uh;cbQt6M%6L1GzOw6 zTA&v?d956ZoyJkwOe~GsXbNx0`6AnC7}e;_$kK#vXPo{baU%mG6I}xfT_cMSxQ|UO z%s2m+59UD*-=N8BbdUrN==30DSIg)LvD-4&Gol9f6kT(KnkZRUVb&6$ztI$F>*XR8 zEznCqa5(h+;GE5I`pXp982J}5@GsgdXfT7HJ%*86TTxPR^6Ge9Z9RkZjQserh|(gn zWEXSGfNYC=SHGw#zapoyaL002kHF$cCxb#uH;*c=&5Qx>OEOB6tSrn7 z%#95!jCp}ci;>@&f!`Wvz9GLuqZ1>CudQ%nxgtYIs#{@5NmW6rr5L#Fnnpqi|>X}SeOl3@CG@oo(AtC~^L(hN;oSfL diff --git a/dev/next-app/src/app/(auth)/sign-in/page.tsx b/dev/next-app/src/app/(auth)/sign-in/page.tsx index 3ce9bef9..6be4faf1 100644 --- a/dev/next-app/src/app/(auth)/sign-in/page.tsx +++ b/dev/next-app/src/app/(auth)/sign-in/page.tsx @@ -15,15 +15,20 @@ import { authClient } from "@/lib/auth-client"; import { useState } from "react"; import { Key } from "lucide-react"; import { PasswordInput } from "@/components/ui/password-input"; +import { Checkbox } from "@/components/ui/checkbox"; +import { toast } from "sonner"; +import { useRouter } from "next/navigation"; export default function Page() { const [email, setEmail] = useState(""); const [password, setPassword] = useState(""); + const [rememberMe, setRememberMe] = useState(false); + const router = useRouter() return (
{/* Radial gradient for the container to give a faded look */}
- + Login @@ -63,12 +68,22 @@ export default function Page() { placeholder="Password" />
+
+ { + setRememberMe(!rememberMe) + }} /> + +
@@ -85,9 +100,14 @@ export default function Page() { Login with Github : + }