Initial commit
This commit is contained in:
83
server.js
Normal file
83
server.js
Normal file
@@ -0,0 +1,83 @@
|
||||
var path = require('path');
|
||||
var express = require('express');
|
||||
|
||||
var app = express();
|
||||
var port = process.env.PORT || 3000;
|
||||
|
||||
if (process.env.NODE_ENV !== 'production') {
|
||||
var webpack = require('webpack');
|
||||
var config = require('./webpack.config.dev');
|
||||
var compiler = webpack(config);
|
||||
|
||||
app.use(require('webpack-dev-middleware')(compiler, {
|
||||
noInfo: true,
|
||||
publicPath: config.output.publicPath
|
||||
}));
|
||||
app.use(require('webpack-hot-middleware')(compiler));
|
||||
} else {
|
||||
app.use('/static', express.static('dist'));
|
||||
}
|
||||
|
||||
// API stubs - Feel free to tear these down in favor of rolling out proper APIs
|
||||
// Also `body-parser` module is included only for this
|
||||
var router = express.Router();
|
||||
|
||||
var validJwtToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9';
|
||||
function isAuthenticated(req, res, next) {
|
||||
// Authenticate with JWT
|
||||
if (req.headers.authorization) {
|
||||
var tokenParts = req.headers.authorization.split(" ");
|
||||
if (tokenParts.length === 2 &&
|
||||
tokenParts[0].trim().toUpperCase() === "JWT" &&
|
||||
tokenParts[1].trim() === validJwtToken
|
||||
) {
|
||||
return next();
|
||||
}
|
||||
}
|
||||
|
||||
// Return 401 with invalid credentials
|
||||
res.status(401).json({
|
||||
'error': 'Invalid JWT token'
|
||||
});
|
||||
}
|
||||
|
||||
router.post('/authenticate', function(req, res) {
|
||||
if (req.body.email === 'user1@example.com' &&
|
||||
req.body.password === 'test123!') {
|
||||
res.json({
|
||||
'jwt_token': validJwtToken,
|
||||
});
|
||||
} else {
|
||||
res.status(400).json({
|
||||
'error': 'Invalid credentials'
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
router.get('/user', isAuthenticated, function(req, res) {
|
||||
res.json({
|
||||
id: '93c3a6d6-3958-44c9-a668-59711befb25c',
|
||||
email: 'user1@example.com',
|
||||
name: 'Test User'
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// Register API
|
||||
var bodyParser = require('body-parser');
|
||||
app.use(bodyParser.json());
|
||||
app.use('/api', router);
|
||||
|
||||
// Frontend
|
||||
app.get('*', function(req, res) {
|
||||
res.sendFile(path.join(__dirname, 'index.html'));
|
||||
});
|
||||
|
||||
app.listen(port, function(err) {
|
||||
if (err) {
|
||||
console.log(err);
|
||||
return;
|
||||
}
|
||||
|
||||
console.log('Listening at ' + port);
|
||||
});
|
||||
Reference in New Issue
Block a user