add https support

This commit is contained in:
selim mustafaev 2020-02-24 22:46:30 +01:00
parent e9c23d31c8
commit 8cc25688ee
3 changed files with 34 additions and 7 deletions

19
ecosystem.config.js Normal file
View File

@ -0,0 +1,19 @@
module.exports = {
apps : [{
name: 'AutoCat API',
script: 'index.js',
// Options reference: https://pm2.keymetrics.io/docs/usage/application-declaration/
node_args: '--async-stack-traces',
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '1G',
env: {
NODE_ENV: 'development'
},
env_production: {
NODE_ENV: 'production'
}
}]
};

View File

@ -6,13 +6,21 @@ const vehicles = require('./routes/vehicles');
const app = express(); const app = express();
const bearerToken = require('express-bearer-token'); const bearerToken = require('express-bearer-token');
const jwt = require('./middleware/jwt'); const jwt = require('./middleware/jwt');
const https = require('https');
const fs = require('fs');
const httpsServer = https.createServer({
key: fs.readFileSync('/etc/letsencrypt/live/vps.aliencat.pro/privkey.pem'),
cert: fs.readFileSync('/etc/letsencrypt/live/vps.aliencat.pro/fullchain.pem')
}, app);
app.use(bodyParser.json()); app.use(bodyParser.json());
app.use(expressMongoDb('mongodb://autocat_user:autocat#321@vps.aliencat.pro:27017/autocatdev')); app.use(expressMongoDb('mongodb://autocat_user:autocat#321@vps.aliencat.pro:27017/autocatdev'));
app.use(bearerToken()); app.use(bearerToken());
app.use(jwt({ secret: 'secret', exclude: ['/user/signup', '/user/login'] })); app.use(jwt({ secret: '#IWantToBelieve', exclude: ['/user/signup', '/user/login'] }));
app.use('/user', users); app.use('/user', users);
app.use('/vehicles', vehicles); app.use('/vehicles', vehicles);
app.listen(3000); //app.listen(3000);
httpsServer.listen(8443);

View File

@ -14,8 +14,8 @@ router.post('/signup', async (req, res) => {
if(users.length == 0) { if(users.length == 0) {
let user = new User(login, password); let user = new User(login, password);
await collection.insertOne(user.toDB()); await collection.insertOne(user.toDB());
user.token = jwt.sign({ login }, 'secret', { expiresIn: '1d' }); user.token = jwt.sign({ login }, '#IWantToBelieve', { expiresIn: '365d' });
res.send({ success: true, data: { user } }); res.send({ success: true, data: user });
} else { } else {
res.send(makeError('User already exists')); res.send(makeError('User already exists'));
} }
@ -41,8 +41,8 @@ router.post('/login', async (req, res) => {
return; return;
} }
me.token = jwt.sign({ login }, 'secret', { expiresIn: '1d' }); me.token = jwt.sign({ login }, '#IWantToBelieve', { expiresIn: '365d' });
res.send({ success: true, data: { user: me } }); res.send({ success: true, data: me });
} else { } else {
res.send(makeError('Incorrect login or password')); res.send(makeError('Incorrect login or password'));
} }
@ -77,4 +77,4 @@ router.get('/find', async (req, res) => {
res.status(code).send({ success: true, data: { users } }); res.status(code).send({ success: true, data: { users } });
}); });
module.exports = router; module.exports = router;