Skip to content

Commit e9c7d04

Browse files
authored
fix: prevent session password in .env from being included in production builds (#419)
1 parent 06f41f4 commit e9c7d04

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

src/module.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ export default defineNuxtModule<ModuleOptions>({
135135

136136
runtimeConfig.session = defu(runtimeConfig.session, {
137137
name: 'nuxt-session',
138-
password: process.env[envSessionPassword] || '',
138+
password: '',
139139
cookie: {
140140
sameSite: 'lax',
141141
},
@@ -146,8 +146,8 @@ export default defineNuxtModule<ModuleOptions>({
146146
})
147147

148148
// Generate the session password
149-
if (nuxt.options.dev && !runtimeConfig.session.password) {
150-
runtimeConfig.session.password = randomUUID().replace(/-/g, '')
149+
if (nuxt.options.dev && !process.env[envSessionPassword]) {
150+
const password = process.env[envSessionPassword] = randomUUID().replace(/-/g, '')
151151
// Add it to .env
152152
const envPath = join(nuxt.options.rootDir, '.env')
153153
const envContent = await readFile(envPath, 'utf-8').catch(() => '')
@@ -156,7 +156,7 @@ export default defineNuxtModule<ModuleOptions>({
156156
envPath,
157157
`${
158158
envContent ? envContent + '\n' : envContent
159-
}${envSessionPassword}=${runtimeConfig.session.password}`,
159+
}${envSessionPassword}=${password}`,
160160
'utf-8',
161161
)
162162
}

src/runtime/server/utils/session.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,9 @@ function _useSession(event: UseSessionEvent, config: Partial<SessionConfig> = {}
112112
const envSessionPassword = `${runtimeConfig.nitro?.envPrefix || 'NUXT_'}SESSION_PASSWORD`
113113

114114
sessionConfig = defu({ password: process.env[envSessionPassword] }, runtimeConfig.session)
115+
if (!sessionConfig.password) {
116+
console.error(`[nuxt-auth-utils] ${envSessionPassword} environment variable or runtimeConfig.session.password was not set.`)
117+
}
115118
}
116119
const finalConfig = defu(config, sessionConfig) as SessionConfig
117120
return useSession<UserSession>(event, finalConfig)

0 commit comments

Comments
 (0)