From cc05baf67d16aac500a8bb8ef9af9ad063a32bc3 Mon Sep 17 00:00:00 2001 From: Milo Schwartz Date: Sun, 24 Nov 2024 11:27:43 -0500 Subject: [PATCH] move resource auth to auth router --- server/routers/external.ts | 13 ++++--------- .../components/ResourceAuthPortal.tsx | 15 +++++++++++---- src/app/auth/resource/[resourceId]/page.tsx | 9 --------- 3 files changed, 15 insertions(+), 22 deletions(-) diff --git a/server/routers/external.ts b/server/routers/external.ts index 142362b..32ed87a 100644 --- a/server/routers/external.ts +++ b/server/routers/external.ts @@ -281,10 +281,6 @@ authenticated.post( verifyUserHasAction(ActionsEnum.setResourceAuthMethods), resource.setResourcePassword, ); -unauthenticated.post( - "/resource/:resourceId/auth/password", - resource.authWithPassword, -); authenticated.post( `/resource/:resourceId/pincode`, @@ -292,10 +288,6 @@ authenticated.post( verifyUserHasAction(ActionsEnum.setResourceAuthMethods), resource.setResourcePincode, ); -unauthenticated.post( - "/resource/:resourceId/auth/pincode", - resource.authWithPincode, -); unauthenticated.get("/resource/:resourceId/auth", resource.getResourceAuthInfo); @@ -382,7 +374,7 @@ unauthenticated.use("/auth", authRouter); authRouter.use( rateLimitMiddleware({ windowMin: 10, - max: 15, + max: 75, type: "IP_AND_PATH", }), ); @@ -412,3 +404,6 @@ authRouter.post( ); authRouter.post("/reset-password/request", auth.requestPasswordReset); authRouter.post("/reset-password/", auth.resetPassword); + +authRouter.post("/resource/:resourceId/password", resource.authWithPassword); +authRouter.post("/resource/:resourceId/pincode", resource.authWithPincode); diff --git a/src/app/auth/resource/[resourceId]/components/ResourceAuthPortal.tsx b/src/app/auth/resource/[resourceId]/components/ResourceAuthPortal.tsx index 5fb0163..a3277f6 100644 --- a/src/app/auth/resource/[resourceId]/components/ResourceAuthPortal.tsx +++ b/src/app/auth/resource/[resourceId]/components/ResourceAuthPortal.tsx @@ -64,13 +64,20 @@ type ResourceAuthPortalProps = { }; redirect: string; queryParamName: string; - numMethods: number; }; export default function ResourceAuthPortal(props: ResourceAuthPortalProps) { const router = useRouter(); - const numMethods = props.numMethods; + const getNumMethods = () => { + let colLength = 0; + if (props.methods.pincode) colLength++; + if (props.methods.password) colLength++; + if (props.methods.sso) colLength++; + return colLength; + }; + + const [numMethods, setNumMethods] = useState(getNumMethods()); const [passwordError, setPasswordError] = useState(null); const [pincodeError, setPincodeError] = useState(null); @@ -117,7 +124,7 @@ export default function ResourceAuthPortal(props: ResourceAuthPortalProps) { const onPinSubmit = (values: z.infer) => { setLoadingLogin(true); api.post>( - `/resource/${props.resource.id}/auth/pincode`, + `/auth/resource/${props.resource.id}/pincode`, { pincode: values.pin }, ) .then((res) => { @@ -141,7 +148,7 @@ export default function ResourceAuthPortal(props: ResourceAuthPortalProps) { const onPasswordSubmit = (values: z.infer) => { setLoadingLogin(true); api.post>( - `/resource/${props.resource.id}/auth/password`, + `/auth/resource/${props.resource.id}/password`, { password: values.password, }, diff --git a/src/app/auth/resource/[resourceId]/page.tsx b/src/app/auth/resource/[resourceId]/page.tsx index e3055b1..32b7d06 100644 --- a/src/app/auth/resource/[resourceId]/page.tsx +++ b/src/app/auth/resource/[resourceId]/page.tsx @@ -80,14 +80,6 @@ export default async function ResourceAuthPage(props: { ); } - const getNumMethods = () => { - let colLength = 0; - if (authInfo.pincode) colLength++; - if (authInfo.password) colLength++; - if (authInfo.sso) colLength++; - return colLength; - }; - return ( <>
@@ -105,7 +97,6 @@ export default async function ResourceAuthPage(props: { queryParamName={ process.env.RESOURCE_SESSION_QUERY_PARAM_NAME! } - numMethods={getNumMethods()} />