add server side https redirect
This commit is contained in:
parent
72b93f8ff1
commit
0b2bfad12f
2 changed files with 33 additions and 31 deletions
|
@ -1,11 +1,6 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<script>
|
|
||||||
if (window.location.protocol === 'http:') {
|
|
||||||
window.location.protocol === 'https:';
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
|
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
|
|
@ -1,21 +1,21 @@
|
||||||
const createError = require('http-errors');
|
const createError = require("http-errors");
|
||||||
const express = require('express');
|
const express = require("express");
|
||||||
|
|
||||||
const cors = require('cors');
|
const cors = require("cors");
|
||||||
|
|
||||||
const path = require('path');
|
const path = require("path");
|
||||||
const cookieParser = require('cookie-parser');
|
const cookieParser = require("cookie-parser");
|
||||||
const logger = require('morgan');
|
const logger = require("morgan");
|
||||||
|
|
||||||
const db = require('./data/db');
|
const db = require("./data/db");
|
||||||
|
|
||||||
const dotenv = require('dotenv');
|
const dotenv = require("dotenv");
|
||||||
dotenv.config();
|
dotenv.config();
|
||||||
|
|
||||||
const indexRouter = require('./routes/index');
|
const indexRouter = require("./routes/index");
|
||||||
const usersRouter = require('./routes/users');
|
const usersRouter = require("./routes/users");
|
||||||
const authRouter = require('./routes/auth');
|
const authRouter = require("./routes/auth");
|
||||||
const apiRouter = require('./routes/api');
|
const apiRouter = require("./routes/api");
|
||||||
|
|
||||||
const app = express();
|
const app = express();
|
||||||
|
|
||||||
|
@ -23,40 +23,47 @@ const allowedOrigin = process.env.REACT_ADDRESS;
|
||||||
const corsOptions = {
|
const corsOptions = {
|
||||||
origin: allowedOrigin,
|
origin: allowedOrigin,
|
||||||
credentials: true,
|
credentials: true,
|
||||||
methods: "GET,PUT,POST,DELETE"
|
methods: "GET,PUT,POST,DELETE",
|
||||||
}
|
};
|
||||||
|
|
||||||
app.options('*', cors(corsOptions));
|
app.options("*", cors(corsOptions));
|
||||||
app.use('*', cors(corsOptions));
|
app.use("*", cors(corsOptions));
|
||||||
|
|
||||||
// disable logging for tests
|
// disable logging for tests
|
||||||
if (process.env.NODE_ENV !== 'test') app.use(logger('dev'));
|
if (process.env.NODE_ENV !== "test") app.use(logger("dev"));
|
||||||
|
|
||||||
app.use(express.json());
|
app.use(express.json());
|
||||||
app.use(express.urlencoded({ extended: false }));
|
app.use(express.urlencoded({ extended: false }));
|
||||||
app.use(cookieParser());
|
app.use(cookieParser());
|
||||||
app.use(express.static(path.join(__dirname, 'public')));
|
app.use(express.static(path.join(__dirname, "public")));
|
||||||
|
|
||||||
app.use('/', indexRouter);
|
// HTTP redirect to HTTPS
|
||||||
app.use('/users', usersRouter);
|
app.use("/", (req, res, next) => {
|
||||||
app.use('/auth', authRouter);
|
if (req.protocol === "http") {
|
||||||
|
return res.redirect(`https://${req.hostname}`);
|
||||||
|
}
|
||||||
|
return next();
|
||||||
|
});
|
||||||
|
app.use("/", indexRouter);
|
||||||
|
app.use("/users", usersRouter);
|
||||||
|
app.use("/auth", authRouter);
|
||||||
// @auth
|
// @auth
|
||||||
app.use('/api/v1', apiRouter);
|
app.use("/api/v1", apiRouter);
|
||||||
|
|
||||||
// catch 404 and forward to error handler
|
// catch 404 and forward to error handler
|
||||||
app.use(function(req, res, next) {
|
app.use(function (req, res, next) {
|
||||||
next(createError(404));
|
next(createError(404));
|
||||||
});
|
});
|
||||||
|
|
||||||
// error handler
|
// error handler
|
||||||
app.use(function(err, req, res, next) {
|
app.use(function (err, req, res, next) {
|
||||||
// set locals, only providing error in development
|
// set locals, only providing error in development
|
||||||
res.locals.message = err.message;
|
res.locals.message = err.message;
|
||||||
res.locals.error = req.app.get('env') === 'development' ? err : {};
|
res.locals.error = req.app.get("env") === "development" ? err : {};
|
||||||
|
|
||||||
// render the error page
|
// render the error page
|
||||||
res.status(err.status || 500);
|
res.status(err.status || 500);
|
||||||
res.send('error');
|
res.send("error");
|
||||||
});
|
});
|
||||||
|
|
||||||
module.exports = app;
|
module.exports = app;
|
||||||
|
|
Loading…
Reference in a new issue