add flash message

This commit is contained in:
2025-11-30 20:11:26 -03:00
parent b5f3648f44
commit 9a0272af1d
8 changed files with 111 additions and 21 deletions

View File

@@ -15,7 +15,7 @@ export const authMiddleware = async (
const strategy = authenticator.get<OAuth2Strategy<User>>('oidc')
const session = await sessionStorage.getSession(request.headers.get('cookie'))
const requestId = context.get(requestIdContext)
let user = session.get('user') as User | null
let user = session.get('user')
if (!user) {
console.log('There is no user logged in')
@@ -67,7 +67,11 @@ export const authMiddleware = async (
context.set(userContext, user)
const response = await next()
const sessionCookie = await sessionStorage.commitSession(session)
response.headers.set('Set-Cookie', sessionCookie)
if (!response.headers.has('Set-Cookie')) {
const sessionCookie = await sessionStorage.commitSession(session)
response.headers.set('Set-Cookie', sessionCookie)
}
return response
}

View File

@@ -1,7 +1,22 @@
import { createCookieSessionStorage } from 'react-router'
import { type User } from './auth'
export function createSessionStorage(env) {
const sessionStorage = createCookieSessionStorage({
type SessionData = {
user: User
returnTo: string
}
type SessionFlashData = {
error: string
success: string
info: string
}
export function createSessionStorage(env: any) {
const cookieSessionStorage = createCookieSessionStorage<
SessionData,
SessionFlashData
>({
cookie: {
name: '__session',
httpOnly: true,
@@ -12,6 +27,5 @@ export function createSessionStorage(env) {
maxAge: 86400 * 7 // 7 days
}
})
return sessionStorage
return cookieSessionStorage
}