@GuillaumeGautreau
Alright i managed to get it to pass cors, and the Preflight request passes, but now it still fails with this:
This is how my app.js is structured now:
require('dotenv').config();
const express = require('express');
const bodyParser = require('body-parser');
const cors = require('cors');
const useragent = require('express-useragent');
const http = require('http');
const forest = require('forest-express-sequelize');
const jwt = require('express-jwt');
const {
errorHandler,
ensureAuthenticated,
PUBLIC_ROUTES,
} = require('forest-express-sequelize');
const whitelist = ['http://localhost:8081', 'https://app.forestadmin.com'];
const corsOptions = {
origin: function (origin, callback) {
if (whitelist.indexOf(origin) !== -1) {
return callback(null, true);
} else {
return callback(new Error('Not allowed by CORS'));
}
}, credentials: true,
};
global.__basedir = __dirname;
const app = express();
const db = require('./models');
db.sequelize.sync();
const server = http.createServer(app);
app.use(cors(corsOptions));
app.use(function (req, res, next) {
console.log('ACCESS HEADERS');
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
res.setHeader('Access-Control-Allow-Credentials', true);
next();
});
app.use('^(?!forest/?$).*', cors(corsOptions));
app.use(useragent.express());
app.use(bodyParser.json({ limit: '10mb', extended: true }));
app.use(bodyParser.urlencoded({ limit: '10mb', extended: true }));
server.listen(process.env.PORT || '3001', () => {
console.log(`Server is running on port: ${process.env.PORT || '3001'}`);
app.use(async () => await forest.init({
envSecret: process.env.FOREST_ENV_SECRET,
authSecret: process.env.FOREST_AUTH_SECRET,
objectMapping: db.Sequelize,
connections: { default: db.sequelize },
}));
});
app.use(jwt({
secret: process.env.FOREST_AUTH_SECRET,
algorithms: ['RS256'],
credentialsRequired: false,
}));
app.use('/forest', (request, response, next) => {
if (PUBLIC_ROUTES.includes(request.url)) {
console.log('PUBLIC ROUTES INCLUDES FOREST');
return next();
}
return ensureAuthenticated(request, response, next);
});
app.use(errorHandler());
module.exports = app;
It does got through the route provided by you guys earlier:

