From 10138112fe50817b61fe99d7189b709c2cc93617 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Rafael=20Siqueira?= Date: Tue, 27 Jan 2026 14:39:38 -0300 Subject: [PATCH] update auth packages --- .../app/middleware/workspace.ts | 8 ++++---- .../app/routes/login._index/route.ts | 6 +++--- packages/auth/src/middleware/auth.ts | 19 +++++++++---------- 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/apps/admin.saladeaula.digital/app/middleware/workspace.ts b/apps/admin.saladeaula.digital/app/middleware/workspace.ts index b7ec636..cb796bd 100644 --- a/apps/admin.saladeaula.digital/app/middleware/workspace.ts +++ b/apps/admin.saladeaula.digital/app/middleware/workspace.ts @@ -1,6 +1,6 @@ import { createContext, redirect, type LoaderFunctionArgs } from 'react-router' -import { userContext } from '@repo/auth/context' +import { requestIdContext, userContext } from '@repo/auth/context' import { request as req } from '@repo/util/request' import { CACHE_NAME, CACHE_TTL_SECONDS } from '@/conf' @@ -42,18 +42,18 @@ export const workspaceMiddleware = async ( next: () => Promise ): Promise => { const orgId = params.orgid + const requestId = context.get(requestIdContext) const user = context.get(userContext)! const cacheKey = buildWorkspaceCacheKey(request, user.sub, orgId) const cached = await getWorkspaceFromCache(cacheKey) if (cached) { - console.log('Warm start') context.set(workspaceContext, cached) return next() } - console.log('Cache miss') + console.log(`[${new Date().toISOString()}] [${requestId}] Cache miss`) const r = await req({ url: `/users/${user.sub}/orgs?limit=25`, @@ -139,7 +139,7 @@ async function saveToCache( ): Promise { const cache: Cache = await caches.open(CACHE_NAME) - const response: Response = new Response(JSON.stringify(workspace), { + const response = new Response(JSON.stringify(workspace), { headers: { 'Content-Type': 'application/json', 'Cache-Control': `public, max-age=${CACHE_TTL_SECONDS}` diff --git a/apps/admin.saladeaula.digital/app/routes/login._index/route.ts b/apps/admin.saladeaula.digital/app/routes/login._index/route.ts index 2cb5184..1c64c61 100644 --- a/apps/admin.saladeaula.digital/app/routes/login._index/route.ts +++ b/apps/admin.saladeaula.digital/app/routes/login._index/route.ts @@ -3,7 +3,7 @@ import type { Route } from './+types/route' import { redirect } from 'react-router' import { createAuth, type User } from '@repo/auth/auth' -import { requestIdContext, cloudflareContext } from '@repo/auth/context' +import { cloudflareContext, requestIdContext } from '@repo/auth/context' import { createSessionStorage } from '@repo/auth/session' export async function loader({ request, context }: Route.LoaderArgs) { @@ -13,6 +13,7 @@ export async function loader({ request, context }: Route.LoaderArgs) { const sessionStorage = createSessionStorage(cloudflare.env) const session = await sessionStorage.getSession(request.headers.get('cookie')) const user = session.get('user') + const now = new Date().toISOString() const returnTo = (session.get('returnTo') as string | undefined) ?? '/' if (user) { @@ -26,9 +27,8 @@ export async function loader({ request, context }: Route.LoaderArgs) { request )) as User session.set('user', authenticatedUser) - session.unset('returnTo') - console.log(`[${requestId}] Redirecting the user to ${returnTo}`) + console.log(`[${now}] [${requestId}] Redirecting the user to ${returnTo}`) // Redirect to the home page after successful login return redirect(returnTo, { diff --git a/packages/auth/src/middleware/auth.ts b/packages/auth/src/middleware/auth.ts index de1b495..6ac8dbb 100644 --- a/packages/auth/src/middleware/auth.ts +++ b/packages/auth/src/middleware/auth.ts @@ -2,9 +2,9 @@ import { decodeJwt } from 'jose' import { redirect, type LoaderFunctionArgs } from 'react-router' import type { OAuth2Strategy } from 'remix-auth-oauth2' -import { requestIdContext, userContext, cloudflareContext } from '../context' -import { createSessionStorage } from '../session' import { createAuth, type User } from '../auth' +import { cloudflareContext, requestIdContext, userContext } from '../context' +import { createSessionStorage } from '../session' export const authMiddleware = async ( { request, context }: LoaderFunctionArgs, @@ -16,12 +16,14 @@ export const authMiddleware = async ( const strategy = authenticator.get>('oidc') const session = await sessionStorage.getSession(request.headers.get('cookie')) const requestId = context.get(requestIdContext) + const now = new Date().toISOString() + let user = session.get('user') - if (!user) { - console.log(`[${requestId}] There is no user logged in`) + session.set('returnTo', new URL(request.url).toString()) - session.set('returnTo', new URL(request.url).toString()) + if (!user) { + console.log(`[${now}][${requestId}] There is no user logged in`) return redirect('/login', { headers: new Headers({ @@ -44,16 +46,13 @@ export const authMiddleware = async ( refreshToken: tokens.refreshToken() } - console.debug( - `[${new Date().toISOString()}] [${requestId}] Refresh token retrieved`, - user - ) + console.debug(`[${now}] [${requestId}] Refresh token retrieved`, user) // Should replace the user in the session session.set('user', user) } } catch (error) { // @ts-ignore - console.error(`[${requestId}]`, error?.stack) + console.error(`[${now}] [${requestId}]`, error?.stack) // If refreshing the token fails, remove the user from the current session // so the user is forced to sign in again