Skip to content

Commit 7c0334c

Browse files
authored
feat(messaging): handle custom allowed origins (#165)
1 parent dadb879 commit 7c0334c

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

src/module.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,13 +91,14 @@ export default defineNuxtModule<ModuleOptions>({
9191

9292
const apiURL = process.env.NUXT_PUBLIC_STUDIO_API_URL || process.env.STUDIO_API || 'https://api.nuxt.studio'
9393
const publicToken = process.env.NUXT_PUBLIC_STUDIO_TOKENS
94+
const iframeMessagingAllowedOrigins = process.env.IFRAME_MESSAGING_ALLOWED_ORIGINS
9495
const gitInfo = await _getLocalGitInfo(nuxt.options.rootDir) || _getGitEnv() || {}
9596
nuxt.options.runtimeConfig.studio = defu(nuxt.options.runtimeConfig.studio as any, {
9697
publicToken,
9798
project: options.project,
9899
gitInfo
99100
})
100-
nuxt.options.runtimeConfig.public.studio = defu(nuxt.options.runtimeConfig.public.studio as any, { apiURL })
101+
nuxt.options.runtimeConfig.public.studio = defu(nuxt.options.runtimeConfig.public.studio as any, { apiURL, iframeMessagingAllowedOrigins })
101102

102103
extendViteConfig((config) => {
103104
config.optimizeDeps = config.optimizeDeps || {}

src/runtime/composables/useStudio.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,9 @@ export const useStudio = () => {
277277
})
278278

279279
window.addEventListener('message', async (e) => {
280-
if (!['https://nuxt.studio', 'https://dev.nuxt.studio', 'http://localhost:3000'].includes(e.origin)) {
280+
// IFRAME_MESSAGING_ALLOWED_ORIGINS format must be a comma separated string of allowed origins
281+
const allowedOrigins = studioConfig?.iframeMessagingAllowedOrigins?.split(',').map((origin: string) => origin.trim()) || []
282+
if (!['https://nuxt.studio', 'https://dev.nuxt.studio', 'http://localhost:3000', ...allowedOrigins].includes(e.origin)) {
281283
return
282284
}
283285

0 commit comments

Comments
 (0)