feat(medusa): Expose session options (#3162)

This commit is contained in:
Oliver Windall Juhl
2023-02-03 13:36:59 +01:00
committed by GitHub
parent d50db84a33
commit 9ebb50104c
4 changed files with 25 additions and 11 deletions

View File

@@ -0,0 +1,5 @@
---
"@medusajs/medusa": patch
---
feat(medusa): Expose session options

View File

@@ -4,16 +4,16 @@ import {
AwilixContainer,
ClassOrFunctionReturning,
createContainer,
Resolver,
Resolver
} from "awilix"
import Logger from "../logger"
import {
ConfigModule,
MedusaContainer,
ModuleResolution,
MODULE_RESOURCE_TYPE,
MODULE_SCOPE,
MODULE_SCOPE
} from "../../types/global"
import Logger from "../logger"
import registerModules from "../module"
import { trackInstallation } from "../__mocks__/medusa-telemetry"

View File

@@ -1,9 +1,9 @@
import createStore from "connect-redis"
import cookieParser from "cookie-parser"
import { Express } from "express"
import session from "express-session"
import cookieParser from "cookie-parser"
import morgan from "morgan"
import redis, { RedisConfig } from "redis"
import createStore from "connect-redis"
import redis from "redis"
import { ConfigModule } from "../types/global"
type Options = {
@@ -22,17 +22,17 @@ export default async ({ app, configModule }: Options): Promise<Express> => {
sameSite = "none"
}
const { cookie_secret } = configModule.projectConfig
const { cookie_secret, session_options } = configModule.projectConfig
const sessionOpts = {
resave: true,
saveUninitialized: true,
resave: session_options?.resave ?? true,
saveUninitialized: session_options?.saveUninitialized ?? true,
cookieName: "session",
proxy: true,
secret: cookie_secret,
secret: session_options?.secret ?? cookie_secret,
cookie: {
sameSite,
secure,
maxAge: 10 * 60 * 60 * 1000,
maxAge: session_options?.ttl ?? 10 * 60 * 60 * 1000,
},
store: null,
}

View File

@@ -100,10 +100,19 @@ export type ModuleExports = {
models?: Constructor<any>[]
}
type SessionOptions = {
resave?: boolean
saveUninitialized?: boolean
secret?: string
ttl?: number
}
export type ConfigModule = {
projectConfig: {
redis_url?: string
session_options?: SessionOptions
jwt_secret?: string
cookie_secret?: string