mirror of
https://github.com/mainflux/mainflux.git
synced 2025-04-27 13:48:49 +08:00
Move back to mongoose. Remove JWT.
Signed-off-by: Drasko DRASKOVIC <drasko.draskovic@gmail.com>
This commit is contained in:
parent
41c1bc03b4
commit
129e911652
@ -1,11 +1,8 @@
|
||||
var mongojs = require('mongojs');
|
||||
var devicesDb = require('../database').collection('devices');
|
||||
|
||||
var jwt = require('jsonwebtoken');
|
||||
var config = require('../../config/config');
|
||||
var log = require('../logger');
|
||||
|
||||
var os = require('os');
|
||||
var Device = require('../models/device');
|
||||
|
||||
|
||||
/** createDevice() */
|
||||
exports.createDevice = function(req, res, next) {
|
||||
@ -14,29 +11,17 @@ exports.createDevice = function(req, res, next) {
|
||||
console.log("req.headers['content-type'] = ", req.headers['content-type']);
|
||||
|
||||
/** Save the device and check for errors */
|
||||
devicesDb.save(req.body, function(err, device) {
|
||||
var device = new Device(); // create a new instance of the Device model
|
||||
device.name = req.body.name; // set the device's name (comes from the request)
|
||||
|
||||
/** Save the device and check for errors */
|
||||
device.save(function(err) {
|
||||
if (err)
|
||||
return next(err);
|
||||
res.send(err);
|
||||
|
||||
var signaturePayload = {
|
||||
version: config.version
|
||||
}
|
||||
|
||||
var token = jwt.sign(signaturePayload, config.tokenSecret, {
|
||||
subject: 'Device Auth Token',
|
||||
issuer: req.headers.host,
|
||||
audience: device._id.toString()
|
||||
});
|
||||
|
||||
res.json({
|
||||
status: 200,
|
||||
message: 'Device created',
|
||||
token: token,
|
||||
_id: device._id.toString()
|
||||
});
|
||||
res.json(device);
|
||||
return next();
|
||||
});
|
||||
|
||||
return next();
|
||||
}
|
||||
|
||||
/** getAllDevices() */
|
||||
@ -44,11 +29,9 @@ exports.getAllDevices = function(req, res, next) {
|
||||
|
||||
console.log("req.headers['x-auth-token'] = ", req.headers['x-auth-token']);
|
||||
|
||||
log.info('hi');
|
||||
|
||||
devicesDb.find(req.body, function(err, devices) {
|
||||
Device.find(function(err, devices) {
|
||||
if (err)
|
||||
return next(err);
|
||||
res.send(err);
|
||||
|
||||
res.json(devices);
|
||||
return next();
|
||||
@ -58,15 +41,11 @@ exports.getAllDevices = function(req, res, next) {
|
||||
/** getDevice() */
|
||||
exports.getDevice = function(req, res, next) {
|
||||
|
||||
devicesDb.findOne({_id: mongojs.ObjectId(req.params.device_id)}, function(err, device) {
|
||||
Device.findById(req.params.device_id, function(err, device) {
|
||||
if (err)
|
||||
return next(err);
|
||||
res.send(err);
|
||||
|
||||
if (device) {
|
||||
res.json(device);
|
||||
} else {
|
||||
res.send("NOT FOUND");
|
||||
}
|
||||
res.json(device);
|
||||
return next();
|
||||
});
|
||||
}
|
||||
@ -74,31 +53,34 @@ exports.getDevice = function(req, res, next) {
|
||||
/** updateDevice() */
|
||||
exports.updateDevice = function(req, res, next) {
|
||||
/** Use our device model to find the device we want */
|
||||
console.log(req.body);
|
||||
devicesDb.update({
|
||||
_id: mongojs.ObjectId(req.params.device_id)
|
||||
},
|
||||
{$set: req.body},
|
||||
function(err, device) {
|
||||
if (err)
|
||||
return next(err);
|
||||
Device.findById(req.params.device_id, function(err, device) {
|
||||
if (err)
|
||||
res.send(err);
|
||||
|
||||
res.send('OK');
|
||||
device.name = req.body.name; // update the devices info
|
||||
|
||||
/** Save the device */
|
||||
device.save(function(err) {
|
||||
if (err)
|
||||
res.send(err);
|
||||
|
||||
res.json(device);
|
||||
return next();
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
/** deleteDevice() */
|
||||
exports.deleteDevice = function(req, res, next) {
|
||||
Device.remove({
|
||||
_id: req.params.device_id
|
||||
}, function(err, device) {
|
||||
if (err)
|
||||
res.send(err);
|
||||
|
||||
devicesDb.remove({
|
||||
_id: mongojs.ObjectId(req.params.device_id)
|
||||
}, function(err, device) {
|
||||
if (err)
|
||||
return next(err);
|
||||
|
||||
res.send('OK');
|
||||
return next();
|
||||
});
|
||||
res.json(device);
|
||||
return next();
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
||||
"bunyan": "^1.5.1",
|
||||
"jsonwebtoken": "~5.0.5",
|
||||
"lodash": "~3.10.1",
|
||||
"mongojs": "^1.4.1",
|
||||
"mongoose": "^4.4.12",
|
||||
"restify": "^4.0.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
61
server.js
61
server.js
@ -6,11 +6,28 @@
|
||||
* See the included LICENSE file for more details.
|
||||
*/
|
||||
var restify = require('restify');
|
||||
var jwt = require('restify-jwt');
|
||||
var domain = require('domain');
|
||||
var config = require('./config/config');
|
||||
var log = require('./app/logger');
|
||||
|
||||
// MongoDB
|
||||
var mongoose = require('mongoose');
|
||||
|
||||
/**
|
||||
* Connect to DB
|
||||
*/
|
||||
/** Check if we run with Docker compose */
|
||||
var dockerMongo = process.env.MONGODB_NAME;
|
||||
var dbUrl = '';
|
||||
if (dockerMongo && dockerMongo == '/mainflux-api-docker/mongodb') {
|
||||
dbUrl = 'mongodb://' + process.env.MONGODB_PORT_27017_TCP_ADDR + ':' + process.env.MONGODB_PORT_27017_TCP_PORT + '/' + config.db.name;
|
||||
} else {
|
||||
dbUrl = 'mongodb://' + config.db.addr + ':' + config.db.port + '/' + config.db.name;
|
||||
}
|
||||
|
||||
mongoose.connect(dbUrl, {server:{auto_reconnect:true}});
|
||||
|
||||
|
||||
/**
|
||||
* RESTIFY
|
||||
*/
|
||||
@ -20,34 +37,15 @@ var server = restify.createServer({
|
||||
name: "Mainflux"
|
||||
});
|
||||
|
||||
|
||||
server.pre(restify.pre.sanitizePath());
|
||||
server.use(restify.acceptParser(server.acceptable));
|
||||
server.use(restify.bodyParser());
|
||||
server.use(restify.queryParser());
|
||||
server.use(restify.authorizationParser());
|
||||
|
||||
console.log('Enabling CORS');
|
||||
server.use(restify.CORS());
|
||||
server.use(restify.fullResponse());
|
||||
|
||||
/** JWT */
|
||||
server.use(jwt({
|
||||
secret: config.tokenSecret,
|
||||
requestProperty: 'token',
|
||||
getToken: function fromHeaderOrQuerystring(req) {
|
||||
var token = (req.body && req.body.access_token) ||
|
||||
(req.query && req.query.access_token) ||
|
||||
req.headers['x-auth-token'];
|
||||
|
||||
return token;
|
||||
}
|
||||
}).unless({
|
||||
path: [
|
||||
'/status',
|
||||
{url: '/devices', methods: ['POST']}
|
||||
]
|
||||
}));
|
||||
|
||||
/** Global error handler */
|
||||
server.use(function(req, res, next) {
|
||||
var domainHandler = domain.create();
|
||||
@ -80,9 +78,26 @@ route(server);
|
||||
*/
|
||||
var port = process.env.PORT || config.port;
|
||||
|
||||
console.log('Starting the server');
|
||||
var banner = `
|
||||
oocccdMMMMMMMMMWOkkkkoooolcclX
|
||||
llc:::0MMMMMMMM0xxxxxdlllc:::d
|
||||
lll:::cXMMMMMMXxxxxxxxdlllc:::
|
||||
lllc:::cXMMMMNkxxxdxxxxolllc::
|
||||
olllc:::oWMMNkxxxdloxxxxolllc: ## ## ### #### ## ## ######## ## ## ## ## ##
|
||||
xolllc:::xWWOxxxdllloxxxxolllc ### ### ## ## ## ### ## ## ## ## ## ## ##
|
||||
xxolllc:::x0xxxdllll:oxxxxllll #### #### ## ## ## #### ## ## ## ## ## ## ##
|
||||
xxxolllc::oxxxxllll:::dxxxdlll ## ### ## ## ## ## ## ## ## ###### ## ## ## ###
|
||||
xxxdllll:lxxxxolllc:::Okxxxdll ## ## ######### ## ## #### ## ## ## ## ## ##
|
||||
0xxxdllloxxxxolllc:::OMNkxxxdl ## ## ## ## ## ## ### ## ## ## ## ## ##
|
||||
W0xxxdllxxxxolllc:::xMMMXxxxxd ## ## ## ## #### ## ## ## ######## ####### ## ##
|
||||
MWOxxxdxxxxdlllc:::oWMMMMKxxxx
|
||||
MMWkxxxxxxdlllc:::oNMMMMMM0xxx
|
||||
MMMXxxxxxdllllc::cXMMMMMMMWOxx
|
||||
MMMM0xxxxolllc:::kMMMMMMMMMXxx
|
||||
`
|
||||
server.listen(port, function() {
|
||||
console.log('%s is running at %s', server.name, server.url);
|
||||
console.log(banner);
|
||||
console.log('Magic happens on port ' + port);
|
||||
});
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user