From 401a81afa0a4d448907c80f1d5a3a07ddc7262c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Rafael=20Siqueira?= Date: Sun, 17 Aug 2025 21:23:02 -0300 Subject: [PATCH] add status --- id.saladeaula.digital/app/routes/session.py | 3 +++ id.saladeaula.digital/client/app/lib/http-status.ts | 2 ++ id.saladeaula.digital/client/app/routes/authorize.ts | 7 ++++--- id.saladeaula.digital/client/app/routes/index.tsx | 3 ++- 4 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 id.saladeaula.digital/client/app/lib/http-status.ts diff --git a/id.saladeaula.digital/app/routes/session.py b/id.saladeaula.digital/app/routes/session.py index f2015e0..ba2d3d3 100644 --- a/id.saladeaula.digital/app/routes/session.py +++ b/id.saladeaula.digital/app/routes/session.py @@ -1,3 +1,4 @@ +from datetime import timedelta from http import HTTPStatus from typing import Annotated from uuid import uuid4 @@ -26,6 +27,7 @@ def session( username: Annotated[str, Body()], password: Annotated[str, Body()], ): + now_ = now() user_id, password_hash = _get_user(username) if not pbkdf2_sha256.verify(password, password_hash): @@ -40,6 +42,7 @@ def session( http_only=True, secure=True, same_site=None, + expires=now_ + timedelta(seconds=JWT_EXP_SECONDS), ) ], ) diff --git a/id.saladeaula.digital/client/app/lib/http-status.ts b/id.saladeaula.digital/client/app/lib/http-status.ts new file mode 100644 index 0000000..45b176e --- /dev/null +++ b/id.saladeaula.digital/client/app/lib/http-status.ts @@ -0,0 +1,2 @@ +export const FOUND = 302 +export const BAD_REQUEST = 400 diff --git a/id.saladeaula.digital/client/app/routes/authorize.ts b/id.saladeaula.digital/client/app/routes/authorize.ts index 516afac..45ba9b1 100644 --- a/id.saladeaula.digital/client/app/routes/authorize.ts +++ b/id.saladeaula.digital/client/app/routes/authorize.ts @@ -1,5 +1,6 @@ import { parse } from 'cookie' +import * as httpStatus from '@/lib/http-status' import type { Route } from './+types/authorize' export async function loader({ request, context }: Route.LoaderArgs) { @@ -12,7 +13,7 @@ export async function loader({ request, context }: Route.LoaderArgs) { if (!cookies.session_id) { return new Response(null, { - status: 302, + status: httpStatus.FOUND, headers: { Location: redirect.toString() } @@ -29,9 +30,9 @@ export async function loader({ request, context }: Route.LoaderArgs) { redirect: 'manual' }) - if (r.status === 400) { + if (r.status === httpStatus.BAD_REQUEST) { return new Response(null, { - status: 302, + status: httpStatus.FOUND, headers: { Location: redirect.toString() } diff --git a/id.saladeaula.digital/client/app/routes/index.tsx b/id.saladeaula.digital/client/app/routes/index.tsx index 5802334..c8343c6 100644 --- a/id.saladeaula.digital/client/app/routes/index.tsx +++ b/id.saladeaula.digital/client/app/routes/index.tsx @@ -11,6 +11,7 @@ import { Button } from '@/components/ui/button' import { Checkbox } from '@/components/ui/checkbox' import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' +import * as httpStatus from '@/lib/http-status' import { useState } from 'react' import logo from './logo.svg' @@ -49,7 +50,7 @@ export async function action({ request, context }: Route.ActionArgs) { headers.set('Location', url.toString()) return new Response(await r.text(), { - status: 302, + status: httpStatus.FOUND, headers }) } catch {