From d08abbfaa935d3c48c78826d2982b9b0732041ee Mon Sep 17 00:00:00 2001 From: Max Peintner Date: Fri, 19 May 2023 10:13:05 +0200 Subject: [PATCH] fix search params --- apps/login/app/(login)/password/page.tsx | 15 ++++++---- apps/login/app/session/route.ts | 1 - .../{email/verify => verifyemail}/route.ts | 0 apps/login/lib/zitadel.ts | 2 +- apps/login/ui/RegisterForm.tsx | 2 +- apps/login/ui/UsernameForm.tsx | 5 +++- apps/login/ui/VerifyEmailForm.tsx | 2 +- apps/login/utils/cookies.ts | 29 +++++++++++++------ 8 files changed, 37 insertions(+), 19 deletions(-) rename apps/login/app/{email/verify => verifyemail}/route.ts (100%) diff --git a/apps/login/app/(login)/password/page.tsx b/apps/login/app/(login)/password/page.tsx index 277fea63e33..c365c2dd0ff 100644 --- a/apps/login/app/(login)/password/page.tsx +++ b/apps/login/app/(login)/password/page.tsx @@ -4,17 +4,22 @@ import UserAvatar from "#/ui/UserAvatar"; import { getMostRecentCookieWithLoginname } from "#/utils/cookies"; async function loadSession(loginName: string) { - const recent = await getMostRecentCookieWithLoginname(loginName); + try { + const recent = await getMostRecentCookieWithLoginname(`${loginName}`); - return getSession(server, recent.id, recent.token).then(({ session }) => { - console.log("ss", session); - return session; - }); + return getSession(server, recent.id, recent.token).then(({ session }) => { + console.log("ss", session); + return session; + }); + } catch (error) { + throw new Error("Session could not be loaded!"); + } } export default async function Page({ searchParams }: { searchParams: any }) { const { loginName } = searchParams; + console.log(loginName); const sessionFactors = await loadSession(loginName); return ( diff --git a/apps/login/app/session/route.ts b/apps/login/app/session/route.ts index 934bdccb1c7..6a718ee4e7c 100644 --- a/apps/login/app/session/route.ts +++ b/apps/login/app/session/route.ts @@ -2,7 +2,6 @@ import { createSession, getSession, server, setSession } from "#/lib/zitadel"; import { SessionCookie, addSessionToCookie, - getMostRecentCookieWithLoginname, getMostRecentSessionCookie, updateSessionCookie, } from "#/utils/cookies"; diff --git a/apps/login/app/email/verify/route.ts b/apps/login/app/verifyemail/route.ts similarity index 100% rename from apps/login/app/email/verify/route.ts rename to apps/login/app/verifyemail/route.ts diff --git a/apps/login/lib/zitadel.ts b/apps/login/lib/zitadel.ts index 99b47878136..9691882b53d 100644 --- a/apps/login/lib/zitadel.ts +++ b/apps/login/lib/zitadel.ts @@ -136,7 +136,7 @@ export function addHumanUser( return mgmt .addHumanUser( { - email: { email, isVerified: false }, + email: { email }, username: email, profile: { firstName, lastName }, password: { password }, diff --git a/apps/login/ui/RegisterForm.tsx b/apps/login/ui/RegisterForm.tsx index c7641176fa8..61471bc2682 100644 --- a/apps/login/ui/RegisterForm.tsx +++ b/apps/login/ui/RegisterForm.tsx @@ -72,7 +72,7 @@ export default function RegisterForm({ function submitAndLink(value: Inputs): Promise { return submitRegister(value).then((resp: any) => { - return router.push(`/register/success?userid=${resp.userId}`); + return router.push(`/verify?userID=${resp.userId}`); }); } diff --git a/apps/login/ui/UsernameForm.tsx b/apps/login/ui/UsernameForm.tsx index 4c2d9cf1b55..aad5ff9d238 100644 --- a/apps/login/ui/UsernameForm.tsx +++ b/apps/login/ui/UsernameForm.tsx @@ -44,7 +44,10 @@ export default function UsernameForm() { function submitUsernameAndContinue(value: Inputs): Promise { return submitUsername(value).then(({ factors }) => { console.log(factors); - return router.push(`/password?loginName=${factors.user.loginName}`); + return router.push( + `/password?` + + new URLSearchParams({ loginName: `${factors.user.loginName}` }) + ); }); } diff --git a/apps/login/ui/VerifyEmailForm.tsx b/apps/login/ui/VerifyEmailForm.tsx index a802fe1fa2f..79c8d1ed832 100644 --- a/apps/login/ui/VerifyEmailForm.tsx +++ b/apps/login/ui/VerifyEmailForm.tsx @@ -28,7 +28,7 @@ export default function VerifyEmailForm({ userId }: Props) { async function submitCode(values: Inputs) { setLoading(true); - const res = await fetch("/email/verify", { + const res = await fetch("/verifyemail", { method: "POST", headers: { "Content-Type": "application/json", diff --git a/apps/login/utils/cookies.ts b/apps/login/utils/cookies.ts index 45579193efe..22f15b87746 100644 --- a/apps/login/utils/cookies.ts +++ b/apps/login/utils/cookies.ts @@ -146,16 +146,27 @@ export async function getMostRecentCookieWithLoginname( if (stringifiedCookie?.value) { const sessions: SessionCookie[] = JSON.parse(stringifiedCookie?.value); - const latest = sessions - .filter((cookie) => (loginName ? cookie.loginName === loginName : true)) - .reduce((prev, current) => { - return new Date(prev.changeDate).getTime() > - new Date(current.changeDate).getTime() - ? prev - : current; - }); + console.log("sess", sessions); + const filtered = sessions.filter((cookie) => { + console.log("filtered", `${cookie.loginName}`, loginName?.toString()); + return !!loginName ? cookie.loginName === loginName : true; + }); - return latest; + const latest = + filtered && filtered.length + ? filtered.reduce((prev, current) => { + return new Date(prev.changeDate).getTime() > + new Date(current.changeDate).getTime() + ? prev + : current; + }) + : undefined; + + if (latest) { + return latest; + } else { + return Promise.reject(); + } } else { return Promise.reject(); }