commit: 8c0bc1309fd40807cf5895b492fc7d1a2c9d7b83
parent: ac3f5a831662e9e09233a2efec1d4de48ac8cb7b
Author: Eugen Rochko <eugen@zeonfederated.com>
Date: Fri, 3 Feb 2017 18:27:42 +0100
Add CORS to the streaming API
Diffstat:
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/streaming/index.js b/streaming/index.js
@@ -30,11 +30,23 @@ const pgConfigs = {
const app = express()
const pgPool = new pg.Pool(pgConfigs[env])
+const allowCrossDomain = (req, res, next) => {
+ res.header('Access-Control-Allow-Origin', '*')
+ res.header('Access-Control-Allow-Headers', 'Authorization, Accept, Cache-Control')
+ res.header('Access-Control-Allow-Methods', 'GET, OPTIONS')
+
+ next()
+}
+
const authenticationMiddleware = (req, res, next) => {
+ if (req.method === 'OPTIONS') {
+ return next()
+ }
+
const authorization = req.get('Authorization')
if (!authorization) {
- err = new Error('Missing access token')
+ const err = new Error('Missing access token')
err.statusCode = 401
return next(err)
@@ -136,6 +148,7 @@ const streamFrom = (id, req, res, needsFiltering = false) => {
redisClient.subscribe(id)
}
+app.use(allowCrossDomain)
app.use(authenticationMiddleware)
app.use(errorMiddleware)