You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
257 lines
6.8 KiB
257 lines
6.8 KiB
import fastify from 'fastify'
|
|
import fastifyCors, {
|
|
FastifyCorsOptionsDelegate,
|
|
FastifyCorsOptionsDelegatePromise,
|
|
FastifyPluginOptionsDelegate,
|
|
OriginFunction
|
|
} from '..'
|
|
|
|
const app = fastify()
|
|
|
|
app.register(fastifyCors)
|
|
|
|
app.register(fastifyCors, {
|
|
origin: true,
|
|
allowedHeaders: 'authorization,content-type',
|
|
methods: 'GET,POST,PUT,PATCH,DELETE,OPTIONS',
|
|
credentials: true,
|
|
exposedHeaders: 'authorization',
|
|
maxAge: 13000,
|
|
preflightContinue: false,
|
|
optionsSuccessStatus: 200,
|
|
preflight: false,
|
|
strictPreflight: false
|
|
})
|
|
|
|
app.register(fastifyCors, {
|
|
origin: true,
|
|
allowedHeaders: ['authorization', 'content-type'],
|
|
methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'],
|
|
credentials: true,
|
|
exposedHeaders: ['authorization'],
|
|
maxAge: 13000,
|
|
preflightContinue: false,
|
|
optionsSuccessStatus: 200,
|
|
preflight: false,
|
|
strictPreflight: false
|
|
})
|
|
|
|
app.register(fastifyCors, {
|
|
origin: '*',
|
|
allowedHeaders: ['authorization', 'content-type'],
|
|
methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'],
|
|
credentials: true,
|
|
exposedHeaders: ['authorization'],
|
|
maxAge: 13000,
|
|
preflightContinue: false,
|
|
optionsSuccessStatus: 200,
|
|
preflight: false,
|
|
strictPreflight: false
|
|
})
|
|
|
|
app.register(fastifyCors, {
|
|
origin: /\*/,
|
|
allowedHeaders: ['authorization', 'content-type'],
|
|
methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'],
|
|
credentials: true,
|
|
exposedHeaders: ['authorization'],
|
|
maxAge: 13000,
|
|
preflightContinue: false,
|
|
optionsSuccessStatus: 200,
|
|
preflight: false,
|
|
strictPreflight: false
|
|
})
|
|
|
|
app.register(fastifyCors, {
|
|
origin: ['*', 'something'],
|
|
allowedHeaders: ['authorization', 'content-type'],
|
|
methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'],
|
|
credentials: true,
|
|
exposedHeaders: ['authorization'],
|
|
maxAge: 13000,
|
|
preflightContinue: false,
|
|
optionsSuccessStatus: 200,
|
|
preflight: false,
|
|
strictPreflight: false
|
|
})
|
|
|
|
app.register(fastifyCors, {
|
|
origin: [/\*/, /something/],
|
|
allowedHeaders: ['authorization', 'content-type'],
|
|
methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'],
|
|
credentials: true,
|
|
exposedHeaders: ['authorization'],
|
|
maxAge: 13000,
|
|
preflightContinue: false,
|
|
optionsSuccessStatus: 200,
|
|
preflight: false,
|
|
strictPreflight: false
|
|
})
|
|
|
|
const corsDelegate: OriginFunction = (origin, cb) => {
|
|
if (typeof origin === 'undefined' || /localhost/.test(origin)) {
|
|
cb(null, true)
|
|
return
|
|
}
|
|
cb(new Error(), false)
|
|
}
|
|
|
|
app.register(fastifyCors, {
|
|
origin: corsDelegate,
|
|
allowedHeaders: ['authorization', 'content-type'],
|
|
methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'],
|
|
credentials: true,
|
|
exposedHeaders: ['authorization'],
|
|
maxAge: 13000,
|
|
optionsSuccessStatus: 200,
|
|
preflight: false,
|
|
strictPreflight: false
|
|
})
|
|
|
|
const appHttp2 = fastify({ http2: true })
|
|
|
|
appHttp2.register(fastifyCors)
|
|
|
|
appHttp2.register(fastifyCors, {
|
|
origin: true,
|
|
allowedHeaders: 'authorization,content-type',
|
|
methods: 'GET,POST,PUT,PATCH,DELETE,OPTIONS',
|
|
credentials: true,
|
|
exposedHeaders: 'authorization',
|
|
maxAge: 13000,
|
|
preflightContinue: false,
|
|
optionsSuccessStatus: 200,
|
|
preflight: false,
|
|
strictPreflight: false
|
|
})
|
|
|
|
appHttp2.register(fastifyCors, {
|
|
origin: true,
|
|
allowedHeaders: ['authorization', 'content-type'],
|
|
methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'],
|
|
credentials: true,
|
|
exposedHeaders: ['authorization'],
|
|
maxAge: 13000,
|
|
preflightContinue: false,
|
|
optionsSuccessStatus: 200,
|
|
preflight: false,
|
|
strictPreflight: false
|
|
})
|
|
|
|
appHttp2.register(fastifyCors, {
|
|
origin: '*',
|
|
allowedHeaders: ['authorization', 'content-type'],
|
|
methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'],
|
|
credentials: true,
|
|
exposedHeaders: ['authorization'],
|
|
maxAge: 13000,
|
|
preflightContinue: false,
|
|
optionsSuccessStatus: 200,
|
|
preflight: false,
|
|
strictPreflight: false
|
|
})
|
|
|
|
appHttp2.register(fastifyCors, {
|
|
origin: /\*/,
|
|
allowedHeaders: ['authorization', 'content-type'],
|
|
methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'],
|
|
credentials: true,
|
|
exposedHeaders: ['authorization'],
|
|
maxAge: 13000,
|
|
preflightContinue: false,
|
|
optionsSuccessStatus: 200,
|
|
preflight: false,
|
|
strictPreflight: false
|
|
})
|
|
|
|
appHttp2.register(fastifyCors, {
|
|
origin: ['*', 'something'],
|
|
allowedHeaders: ['authorization', 'content-type'],
|
|
methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'],
|
|
credentials: true,
|
|
exposedHeaders: ['authorization'],
|
|
maxAge: 13000,
|
|
preflightContinue: false,
|
|
optionsSuccessStatus: 200,
|
|
preflight: false,
|
|
strictPreflight: false
|
|
})
|
|
|
|
appHttp2.register(fastifyCors, {
|
|
origin: [/\*/, /something/],
|
|
allowedHeaders: ['authorization', 'content-type'],
|
|
methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'],
|
|
credentials: true,
|
|
exposedHeaders: ['authorization'],
|
|
maxAge: 13000,
|
|
preflightContinue: false,
|
|
optionsSuccessStatus: 200,
|
|
preflight: false,
|
|
strictPreflight: false
|
|
})
|
|
|
|
appHttp2.register(fastifyCors, {
|
|
origin: (origin: string | undefined, cb: (err: Error | null, allow: boolean) => void) => {
|
|
if (typeof origin === 'undefined' || /localhost/.test(origin)) {
|
|
cb(null, true)
|
|
return
|
|
}
|
|
cb(new Error(), false)
|
|
},
|
|
allowedHeaders: ['authorization', 'content-type'],
|
|
methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'],
|
|
credentials: true,
|
|
exposedHeaders: ['authorization'],
|
|
maxAge: 13000,
|
|
preflightContinue: false,
|
|
optionsSuccessStatus: 200,
|
|
preflight: false,
|
|
strictPreflight: false
|
|
})
|
|
|
|
appHttp2.register(fastifyCors, (): FastifyCorsOptionsDelegate => (req, cb) => {
|
|
cb(null, {
|
|
origin: [/\*/, /something/],
|
|
allowedHeaders: ['authorization', 'content-type'],
|
|
methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'],
|
|
credentials: true,
|
|
exposedHeaders: ['authorization'],
|
|
maxAge: 13000,
|
|
preflightContinue: false,
|
|
optionsSuccessStatus: 200,
|
|
preflight: false,
|
|
strictPreflight: false
|
|
})
|
|
})
|
|
|
|
appHttp2.register(fastifyCors, (): FastifyCorsOptionsDelegatePromise => (req) => {
|
|
return Promise.resolve({
|
|
origin: [/\*/, /something/],
|
|
allowedHeaders: ['authorization', 'content-type'],
|
|
methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'],
|
|
credentials: true,
|
|
exposedHeaders: ['authorization'],
|
|
maxAge: 13000,
|
|
preflightContinue: false,
|
|
optionsSuccessStatus: 200,
|
|
preflight: false,
|
|
strictPreflight: false
|
|
})
|
|
})
|
|
|
|
const delegate: FastifyPluginOptionsDelegate<FastifyCorsOptionsDelegatePromise> = () => async (req) => {
|
|
return {
|
|
origin: [/\*/, /something/],
|
|
allowedHeaders: ['authorization', 'content-type'],
|
|
methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'],
|
|
credentials: true,
|
|
exposedHeaders: ['authorization'],
|
|
maxAge: 13000,
|
|
preflightContinue: false,
|
|
optionsSuccessStatus: 200,
|
|
preflight: false,
|
|
strictPreflight: false
|
|
}
|
|
}
|
|
appHttp2.register(fastifyCors, delegate)
|