From 8cc25688eefbbcb8be78e2040caec4a74a230c81 Mon Sep 17 00:00:00 2001 From: selim mustafaev Date: Mon, 24 Feb 2020 22:46:30 +0100 Subject: [PATCH] add https support --- ecosystem.config.js | 19 +++++++++++++++++++ index.js | 12 ++++++++++-- routes/user.js | 10 +++++----- 3 files changed, 34 insertions(+), 7 deletions(-) create mode 100644 ecosystem.config.js diff --git a/ecosystem.config.js b/ecosystem.config.js new file mode 100644 index 0000000..b69dd81 --- /dev/null +++ b/ecosystem.config.js @@ -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' + } + }] +}; diff --git a/index.js b/index.js index 018f5bc..201a37f 100644 --- a/index.js +++ b/index.js @@ -6,13 +6,21 @@ const vehicles = require('./routes/vehicles'); const app = express(); const bearerToken = require('express-bearer-token'); 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(expressMongoDb('mongodb://autocat_user:autocat#321@vps.aliencat.pro:27017/autocatdev')); 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('/vehicles', vehicles); -app.listen(3000); \ No newline at end of file +//app.listen(3000); +httpsServer.listen(8443); diff --git a/routes/user.js b/routes/user.js index e5f806b..c1137d4 100644 --- a/routes/user.js +++ b/routes/user.js @@ -14,8 +14,8 @@ router.post('/signup', async (req, res) => { if(users.length == 0) { let user = new User(login, password); await collection.insertOne(user.toDB()); - user.token = jwt.sign({ login }, 'secret', { expiresIn: '1d' }); - res.send({ success: true, data: { user } }); + user.token = jwt.sign({ login }, '#IWantToBelieve', { expiresIn: '365d' }); + res.send({ success: true, data: user }); } else { res.send(makeError('User already exists')); } @@ -41,8 +41,8 @@ router.post('/login', async (req, res) => { return; } - me.token = jwt.sign({ login }, 'secret', { expiresIn: '1d' }); - res.send({ success: true, data: { user: me } }); + me.token = jwt.sign({ login }, '#IWantToBelieve', { expiresIn: '365d' }); + res.send({ success: true, data: me }); } else { 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 } }); }); -module.exports = router; \ No newline at end of file +module.exports = router;