백엔드에서의 불필요한 trim 사용 제거

This commit is contained in:
static
2024-12-31 08:30:41 +09:00
parent 3ee6365ff2
commit 5c535d1191
9 changed files with 16 additions and 21 deletions

View File

@@ -44,7 +44,7 @@ export const authenticate = (cookies: Cookies) => {
error(401, "Access token not found"); error(401, "Access token not found");
} }
const tokenPayload = verifyToken(accessToken.trim()); const tokenPayload = verifyToken(accessToken);
if (tokenPayload === TokenError.EXPIRED) { if (tokenPayload === TokenError.EXPIRED) {
error(401, "Access token expired"); error(401, "Access token expired");
} else if (tokenPayload === TokenError.INVALID || tokenPayload.type !== "access") { } else if (tokenPayload === TokenError.INVALID || tokenPayload.type !== "access") {

View File

@@ -9,13 +9,13 @@ export const POST: RequestHandler = async ({ request, cookies }) => {
const zodRes = z const zodRes = z
.object({ .object({
email: z.string().email().nonempty(), email: z.string().email().nonempty(),
password: z.string().nonempty(), password: z.string().trim().nonempty(),
}) })
.safeParse(await request.json()); .safeParse(await request.json());
if (!zodRes.success) error(400, "Invalid request body"); if (!zodRes.success) error(400, "Invalid request body");
const { email, password } = zodRes.data; const { email, password } = zodRes.data;
const { accessToken, refreshToken } = await login(email.trim(), password.trim()); const { accessToken, refreshToken } = await login(email, password);
cookies.set("accessToken", accessToken, { cookies.set("accessToken", accessToken, {
path: "/", path: "/",
maxAge: Math.floor(ms(env.jwt.accessExp) / 1000), maxAge: Math.floor(ms(env.jwt.accessExp) / 1000),

View File

@@ -6,7 +6,7 @@ export const POST: RequestHandler = async ({ cookies }) => {
const token = cookies.get("refreshToken"); const token = cookies.get("refreshToken");
if (!token) error(401, "Refresh token not found"); if (!token) error(401, "Refresh token not found");
await logout(token.trim()); await logout(token);
cookies.delete("accessToken", { path: "/" }); cookies.delete("accessToken", { path: "/" });
cookies.delete("refreshToken", { path: "/api/auth" }); cookies.delete("refreshToken", { path: "/api/auth" });

View File

@@ -6,7 +6,7 @@ export const POST: RequestHandler = async ({ cookies }) => {
const token = cookies.get("refreshToken"); const token = cookies.get("refreshToken");
if (!token) error(401, "Refresh token not found"); if (!token) error(401, "Refresh token not found");
const { accessToken, refreshToken } = await doRefreshToken(token.trim()); const { accessToken, refreshToken } = await doRefreshToken(token);
cookies.set("accessToken", accessToken, { cookies.set("accessToken", accessToken, {
path: "/", path: "/",
sameSite: "strict", sameSite: "strict",

View File

@@ -17,10 +17,10 @@ export const POST: RequestHandler = async ({ request, cookies, getClientAddress
const { encPubKey, sigPubKey } = zodRes.data; const { encPubKey, sigPubKey } = zodRes.data;
const { challenge } = await createTokenUpgradeChallenge( const { challenge } = await createTokenUpgradeChallenge(
token.trim(), token,
getClientAddress(), getClientAddress(),
encPubKey.trim(), encPubKey,
sigPubKey.trim(), sigPubKey,
); );
return json({ challenge }); return json({ challenge });
}; };

View File

@@ -17,10 +17,10 @@ export const POST: RequestHandler = async ({ request, cookies, getClientAddress
const { answer, sigAnswer } = zodRes.data; const { answer, sigAnswer } = zodRes.data;
const { accessToken, refreshToken } = await upgradeToken( const { accessToken, refreshToken } = await upgradeToken(
token.trim(), token,
getClientAddress(), getClientAddress(),
answer.trim(), answer,
sigAnswer.trim(), sigAnswer,
); );
cookies.set("accessToken", accessToken, { cookies.set("accessToken", accessToken, {
path: "/", path: "/",

View File

@@ -19,11 +19,6 @@ export const POST: RequestHandler = async ({ request, cookies, getClientAddress
if (!zodRes.success) error(400, "Invalid request body"); if (!zodRes.success) error(400, "Invalid request body");
const { encPubKey, sigPubKey } = zodRes.data; const { encPubKey, sigPubKey } = zodRes.data;
const { challenge } = await registerUserClient( const { challenge } = await registerUserClient(userId, getClientAddress(), encPubKey, sigPubKey);
userId,
getClientAddress(),
encPubKey.trim(),
sigPubKey.trim(),
);
return json({ challenge }); return json({ challenge });
}; };

View File

@@ -19,6 +19,6 @@ export const POST: RequestHandler = async ({ request, cookies, getClientAddress
if (!zodRes.success) error(400, "Invalid request body"); if (!zodRes.success) error(400, "Invalid request body");
const { answer, sigAnswer } = zodRes.data; const { answer, sigAnswer } = zodRes.data;
await verifyUserClient(userId, getClientAddress(), answer.trim(), sigAnswer.trim()); await verifyUserClient(userId, getClientAddress(), answer, sigAnswer);
return text("Client verified", { headers: { "Content-Type": "text/plain" } }); return text("Client verified", { headers: { "Content-Type": "text/plain" } });
}; };

View File

@@ -11,7 +11,7 @@ export const POST: RequestHandler = async ({ request, cookies }) => {
.object({ .object({
meks: z.array( meks: z.array(
z.object({ z.object({
clientId: z.number(), clientId: z.number().int().positive(),
mek: z.string().base64().nonempty(), mek: z.string().base64().nonempty(),
sigMek: z.string().base64().nonempty(), sigMek: z.string().base64().nonempty(),
}), }),
@@ -26,8 +26,8 @@ export const POST: RequestHandler = async ({ request, cookies }) => {
clientId, clientId,
meks.map(({ clientId, mek, sigMek }) => ({ meks.map(({ clientId, mek, sigMek }) => ({
clientId, clientId,
encMek: mek.trim(), encMek: mek,
sigEncMek: sigMek.trim(), sigEncMek: sigMek,
})), })),
); );
return text("MEK registered", { headers: { "Content-Type": "text/plain" } }); return text("MEK registered", { headers: { "Content-Type": "text/plain" } });