Commit 594a3bc4 authored by KANTAPONG SONG-NGAM's avatar KANTAPONG SONG-NGAM

add work

parent b5b120bb
passport = require('passport');
localStrategy = require('passport-local').Strategy;
User = require('./user');
config = require('./config');
JWTstrategy = require('passport-jwt').Strategy;
//We use this to extract the JWT sent by the user
ExtractJWT = require('passport-jwt').ExtractJwt;
//Create a passport middleware to handle User login
passport.use('login', new localStrategy({
usernameField : 'username',
passwordField : 'password'
}, async (username, password, done) => {
try {
//Find the user
user = await User.findOne({ username });
if( !user ){
//If the user isn't found in the database, return a message
return done(null, false, { message : 'User not found'});
}
//Validate password and make sure it matches with the corresponding hash stored in the database
//If the passwords match, it returns a value of true.
const validate = await user.isValidPassword(password);
if( !validate ){
return done(null, false, { message : 'Wrong Password'});
}
//Send the user information to the next middleware
return done(null, user, { message : 'Logged in Successfully'});
} catch (error) {
return done(error);
}
}));
//This verifies that the token sent by the user is valid
passport.use(new JWTstrategy({
//secret we used to sign our JWT
secretOrKey : config.secret,
jwtFromRequest : ExtractJWT.fromUrlQueryParameter(config.secret)
}, async (token, done) => {
try {
//Pass the user details to the next middleware
return done(null, token.user);
} catch (error) {
done(error);
}
}));
module.exports = {
'secret': 'KolenCompation',
'database': 'mongodb://localhost/Kolen'
}
\ No newline at end of file
{
"name": "week03",
"version": "1.0.0",
"lockfileVersion": 1
}
{
"name": "week03",
"version": "1.0.0",
"description": "",
"main": "auth.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node server.js"
},
"author": "",
"license": "ISC"
}
express = require('express');
passport = require('passport');
jwt = require('jsonwebtoken');
config = require('./config');
apiRoutes = express.Router();
apiRoutes.post('/login', async (req, res, next) => {
passport.authenticate('login', async (err, user, info) => {
try {
if(err || !user){
const error = new Error('An Error occured')
return next(error);
}
req.login(user, { session : false }, async (error) => {
if( error ) return next(error)
const body = { _id : user._id, username : user.username };
token = jwt.sign({ user : body },config.secret);
//Send back the token to the user
return res.json({ token });
}); } catch (error) {
return next(error);
}
})(req, res, next);
});
module.exports = apiRoutes;
express = require('express');
apiRoutes = express.Router();
// GET(http://localhost:8000/api/)
apiRoutes.get('/', function(req, res) {
res.json({ message: 'Welcome to API routing'});
});
// GET(http://localhost:8000/api/users)
apiRoutes.get('/users', function(req, res) {
User.find({}, function(err, users) {
if (err) throw err;
res.json(users);
});
});
module.exports = apiRoutes;
express = require('express');
app = express();
bodyParser = require('body-parser');
morgan = require('morgan');
mongoose = require('mongoose');
jwt = require('jsonwebtoken');
passport = require('passport');
config = require('./config');
routes = require('./routes');
secureRoute = require('./secure-routes');
// =======================
// configuration
// =======================
// server setting
var port = process.env.PORT || 8000;
// connect databse
mongoose.connect(config.database,{useNewUrlParser:true});
//mongoose.Promise = global.Promise;
// application variables
app.set('superSecret', config.secret);
require('./auth');
// config for body-parser
app.use(bodyParser.urlencoded({ extended: false}));
app.use(bodyParser.json());
// log request
app.use(morgan('combined'));
// =======================
// routes
// =======================
app.use('/', routes);
app.use('/api', passport.authenticate('jwt', { session : false }), secureRoute );
// =======================
// start the server
// =======================
app.listen(port);
console.log('started http://localhost:' + port + '/');
// get mongoose.Schema
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
UserSchema = new Schema({
username : {
type : String ,
required : true
},
password : {
type : String,
required : true
},
admin : {
type : Boolean,
required : true
}
})
// make user model and export
module.exports = mongoose.model('User', UserSchema);
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
"integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
"requires": { "requires": {
"mime-types": "2.1.21", "mime-types": "~2.1.18",
"negotiator": "0.6.1" "negotiator": "0.6.1"
} }
}, },
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
"resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
"integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
"requires": { "requires": {
"lodash": "4.17.11" "lodash": "^4.17.10"
} }
}, },
"basic-auth": { "basic-auth": {
...@@ -59,8 +59,8 @@ ...@@ -59,8 +59,8 @@
"version": "1.1.5", "version": "1.1.5",
"bundled": true, "bundled": true,
"requires": { "requires": {
"delegates": "1.0.0", "delegates": "^1.0.0",
"readable-stream": "2.3.5" "readable-stream": "^2.0.6"
} }
}, },
"balanced-match": { "balanced-match": {
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
"version": "1.1.11", "version": "1.1.11",
"bundled": true, "bundled": true,
"requires": { "requires": {
"balanced-match": "1.0.0", "balanced-match": "^1.0.0",
"concat-map": "0.0.1" "concat-map": "0.0.1"
} }
}, },
...@@ -118,7 +118,7 @@ ...@@ -118,7 +118,7 @@
"version": "1.2.5", "version": "1.2.5",
"bundled": true, "bundled": true,
"requires": { "requires": {
"minipass": "2.3.4" "minipass": "^2.2.1"
} }
}, },
"fs.realpath": { "fs.realpath": {
...@@ -129,26 +129,26 @@ ...@@ -129,26 +129,26 @@
"version": "2.7.4", "version": "2.7.4",
"bundled": true, "bundled": true,
"requires": { "requires": {
"aproba": "1.2.0", "aproba": "^1.0.3",
"console-control-strings": "1.1.0", "console-control-strings": "^1.0.0",
"has-unicode": "2.0.1", "has-unicode": "^2.0.0",
"object-assign": "4.1.1", "object-assign": "^4.1.0",
"signal-exit": "3.0.2", "signal-exit": "^3.0.0",
"string-width": "1.0.2", "string-width": "^1.0.1",
"strip-ansi": "3.0.1", "strip-ansi": "^3.0.1",
"wide-align": "1.1.3" "wide-align": "^1.1.0"
} }
}, },
"glob": { "glob": {
"version": "7.1.2", "version": "7.1.2",
"bundled": true, "bundled": true,
"requires": { "requires": {
"fs.realpath": "1.0.0", "fs.realpath": "^1.0.0",
"inflight": "1.0.6", "inflight": "^1.0.4",
"inherits": "2.0.3", "inherits": "2",
"minimatch": "3.0.4", "minimatch": "^3.0.4",
"once": "1.4.0", "once": "^1.3.0",
"path-is-absolute": "1.0.1" "path-is-absolute": "^1.0.0"
} }
}, },
"has-unicode": { "has-unicode": {
...@@ -159,22 +159,22 @@ ...@@ -159,22 +159,22 @@
"version": "0.4.24", "version": "0.4.24",
"bundled": true, "bundled": true,
"requires": { "requires": {
"safer-buffer": "2.1.2" "safer-buffer": ">= 2.1.2 < 3"
} }
}, },
"ignore-walk": { "ignore-walk": {
"version": "3.0.1", "version": "3.0.1",
"bundled": true, "bundled": true,
"requires": { "requires": {
"minimatch": "3.0.4" "minimatch": "^3.0.4"
} }
}, },
"inflight": { "inflight": {
"version": "1.0.6", "version": "1.0.6",
"bundled": true, "bundled": true,
"requires": { "requires": {
"once": "1.4.0", "once": "^1.3.0",
"wrappy": "1.0.2" "wrappy": "1"
} }
}, },
"inherits": { "inherits": {
...@@ -189,7 +189,7 @@ ...@@ -189,7 +189,7 @@
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "bundled": true,
"requires": { "requires": {
"number-is-nan": "1.0.1" "number-is-nan": "^1.0.0"
} }
}, },
"isarray": { "isarray": {
...@@ -200,7 +200,7 @@ ...@@ -200,7 +200,7 @@
"version": "3.0.4", "version": "3.0.4",
"bundled": true, "bundled": true,
"requires": { "requires": {
"brace-expansion": "1.1.11" "brace-expansion": "^1.1.7"
} }
}, },
"minimist": { "minimist": {
...@@ -211,8 +211,8 @@ ...@@ -211,8 +211,8 @@
"version": "2.3.4", "version": "2.3.4",
"bundled": true, "bundled": true,
"requires": { "requires": {
"safe-buffer": "5.1.2", "safe-buffer": "^5.1.2",
"yallist": "3.0.2" "yallist": "^3.0.0"
}, },
"dependencies": { "dependencies": {
"safe-buffer": { "safe-buffer": {
...@@ -229,7 +229,7 @@ ...@@ -229,7 +229,7 @@
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "bundled": true,
"requires": { "requires": {
"minipass": "2.3.4" "minipass": "^2.2.1"
} }
}, },
"mkdirp": { "mkdirp": {
...@@ -247,33 +247,33 @@ ...@@ -247,33 +247,33 @@
"version": "2.2.3", "version": "2.2.3",
"bundled": true, "bundled": true,
"requires": { "requires": {
"debug": "2.6.9", "debug": "^2.1.2",
"iconv-lite": "0.4.24", "iconv-lite": "^0.4.4",
"sax": "1.2.4" "sax": "^1.2.4"
} }
}, },
"node-pre-gyp": { "node-pre-gyp": {
"version": "0.11.0", "version": "0.11.0",
"bundled": true, "bundled": true,
"requires": { "requires": {
"detect-libc": "1.0.3", "detect-libc": "^1.0.2",
"mkdirp": "0.5.1", "mkdirp": "^0.5.1",
"needle": "2.2.3", "needle": "^2.2.1",
"nopt": "4.0.1", "nopt": "^4.0.1",
"npm-packlist": "1.1.11", "npm-packlist": "^1.1.6",
"npmlog": "4.1.2", "npmlog": "^4.0.2",
"rc": "1.2.8", "rc": "^1.2.7",
"rimraf": "2.6.2", "rimraf": "^2.6.1",
"semver": "5.5.1", "semver": "^5.3.0",
"tar": "4.4.6" "tar": "^4"
} }
}, },
"nopt": { "nopt": {
"version": "4.0.1", "version": "4.0.1",
"bundled": true, "bundled": true,
"requires": { "requires": {
"abbrev": "1.1.1", "abbrev": "1",
"osenv": "0.1.5" "osenv": "^0.1.4"
} }
}, },
"npm-bundled": { "npm-bundled": {
...@@ -284,18 +284,18 @@ ...@@ -284,18 +284,18 @@
"version": "1.1.11", "version": "1.1.11",
"bundled": true, "bundled": true,
"requires": { "requires": {
"ignore-walk": "3.0.1", "ignore-walk": "^3.0.1",
"npm-bundled": "1.0.5" "npm-bundled": "^1.0.1"
} }
}, },
"npmlog": { "npmlog": {
"version": "4.1.2", "version": "4.1.2",
"bundled": true, "bundled": true,
"requires": { "requires": {
"are-we-there-yet": "1.1.5", "are-we-there-yet": "~1.1.2",
"console-control-strings": "1.1.0", "console-control-strings": "~1.1.0",
"gauge": "2.7.4", "gauge": "~2.7.3",
"set-blocking": "2.0.0" "set-blocking": "~2.0.0"
} }
}, },
"number-is-nan": { "number-is-nan": {
...@@ -310,7 +310,7 @@ ...@@ -310,7 +310,7 @@
"version": "1.4.0", "version": "1.4.0",
"bundled": true, "bundled": true,
"requires": { "requires": {
"wrappy": "1.0.2" "wrappy": "1"
} }
}, },
"os-homedir": { "os-homedir": {
...@@ -325,8 +325,8 @@ ...@@ -325,8 +325,8 @@
"version": "0.1.5", "version": "0.1.5",
"bundled": true, "bundled": true,
"requires": { "requires": {
"os-homedir": "1.0.2", "os-homedir": "^1.0.0",
"os-tmpdir": "1.0.2" "os-tmpdir": "^1.0.0"
} }
}, },
"path-is-absolute": { "path-is-absolute": {
...@@ -341,10 +341,10 @@ ...@@ -341,10 +341,10 @@
"version": "1.2.8", "version": "1.2.8",
"bundled": true, "bundled": true,
"requires": { "requires": {
"deep-extend": "0.6.0", "deep-extend": "^0.6.0",
"ini": "1.3.5", "ini": "~1.3.0",
"minimist": "1.2.0", "minimist": "^1.2.0",
"strip-json-comments": "2.0.1" "strip-json-comments": "~2.0.1"
}, },
"dependencies": { "dependencies": {
"minimist": { "minimist": {
...@@ -357,20 +357,20 @@ ...@@ -357,20 +357,20 @@
"version": "2.3.5", "version": "2.3.5",
"bundled": true, "bundled": true,
"requires": { "requires": {
"core-util-is": "1.0.2", "core-util-is": "~1.0.0",
"inherits": "2.0.3", "inherits": "~2.0.3",
"isarray": "1.0.0", "isarray": "~1.0.0",
"process-nextick-args": "2.0.0", "process-nextick-args": "~2.0.0",
"safe-buffer": "5.1.1", "safe-buffer": "~5.1.1",
"string_decoder": "1.0.3", "string_decoder": "~1.0.3",
"util-deprecate": "1.0.2" "util-deprecate": "~1.0.1"
} }
}, },
"rimraf": { "rimraf": {
"version": "2.6.2", "version": "2.6.2",
"bundled": true, "bundled": true,
"requires": { "requires": {
"glob": "7.1.2" "glob": "^7.0.5"
} }
}, },
"safe-buffer": { "safe-buffer": {
...@@ -401,23 +401,23 @@ ...@@ -401,23 +401,23 @@
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "bundled": true,
"requires": { "requires": {
"code-point-at": "1.1.0", "code-point-at": "^1.0.0",
"is-fullwidth-code-point": "1.0.0", "is-fullwidth-code-point": "^1.0.0",
"strip-ansi": "3.0.1" "strip-ansi": "^3.0.0"
} }
}, },
"string_decoder": { "string_decoder": {
"version": "1.0.3", "version": "1.0.3",
"bundled": true, "bundled": true,
"requires": { "requires": {
"safe-buffer": "5.1.1" "safe-buffer": "~5.1.0"
} }
}, },
"strip-ansi": { "strip-ansi": {
"version": "3.0.1", "version": "3.0.1",
"bundled": true, "bundled": true,
"requires": { "requires": {
"ansi-regex": "2.1.1" "ansi-regex": "^2.0.0"
} }
}, },
"strip-json-comments": { "strip-json-comments": {
...@@ -428,13 +428,13 @@ ...@@ -428,13 +428,13 @@
"version": "4.4.6", "version": "4.4.6",
"bundled": true, "bundled": true,
"requires": { "requires": {
"chownr": "1.1.1", "chownr": "^1.0.1",
"fs-minipass": "1.2.5", "fs-minipass": "^1.2.5",
"minipass": "2.3.4", "minipass": "^2.3.3",
"minizlib": "1.1.0", "minizlib": "^1.1.0",
"mkdirp": "0.5.1", "mkdirp": "^0.5.0",
"safe-buffer": "5.1.2", "safe-buffer": "^5.1.2",
"yallist": "3.0.2" "yallist": "^3.0.2"
}, },
"dependencies": { "dependencies": {
"safe-buffer": { "safe-buffer": {
...@@ -455,7 +455,7 @@ ...@@ -455,7 +455,7 @@
"version": "1.1.3", "version": "1.1.3",
"bundled": true, "bundled": true,
"requires": { "requires": {
"string-width": "1.0.2" "string-width": "^1.0.2 || 2"
} }
}, },
"wrappy": { "wrappy": {
...@@ -475,15 +475,15 @@ ...@@ -475,15 +475,15 @@
"integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=",
"requires": { "requires": {
"bytes": "3.0.0", "bytes": "3.0.0",
"content-type": "1.0.4", "content-type": "~1.0.4",
"debug": "2.6.9", "debug": "2.6.9",
"depd": "1.1.2", "depd": "~1.1.2",
"http-errors": "1.6.3", "http-errors": "~1.6.3",
"iconv-lite": "0.4.23", "iconv-lite": "0.4.23",
"on-finished": "2.3.0", "on-finished": "~2.3.0",
"qs": "6.5.2", "qs": "6.5.2",
"raw-body": "2.3.3", "raw-body": "2.3.3",
"type-is": "1.6.16" "type-is": "~1.6.16"
} }
}, },
"bson": { "bson": {
...@@ -544,7 +544,7 @@ ...@@ -544,7 +544,7 @@
"resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz", "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.10.tgz",
"integrity": "sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM=", "integrity": "sha1-HFlQAPBKiJffuFAAiSoPTDOvhsM=",
"requires": { "requires": {
"safe-buffer": "5.1.2" "safe-buffer": "^5.0.1"
} }
}, },
"ee-first": { "ee-first": {
...@@ -572,36 +572,36 @@ ...@@ -572,36 +572,36 @@
"resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz",
"integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==",
"requires": { "requires": {
"accepts": "1.3.5", "accepts": "~1.3.5",
"array-flatten": "1.1.1", "array-flatten": "1.1.1",
"body-parser": "1.18.3", "body-parser": "1.18.3",
"content-disposition": "0.5.2", "content-disposition": "0.5.2",
"content-type": "1.0.4", "content-type": "~1.0.4",
"cookie": "0.3.1", "cookie": "0.3.1",
"cookie-signature": "1.0.6", "cookie-signature": "1.0.6",
"debug": "2.6.9", "debug": "2.6.9",
"depd": "1.1.2", "depd": "~1.1.2",
"encodeurl": "1.0.2", "encodeurl": "~1.0.2",
"escape-html": "1.0.3", "escape-html": "~1.0.3",
"etag": "1.8.1", "etag": "~1.8.1",
"finalhandler": "1.1.1", "finalhandler": "1.1.1",
"fresh": "0.5.2", "fresh": "0.5.2",
"merge-descriptors": "1.0.1", "merge-descriptors": "1.0.1",
"methods": "1.1.2", "methods": "~1.1.2",
"on-finished": "2.3.0", "on-finished": "~2.3.0",
"parseurl": "1.3.2", "parseurl": "~1.3.2",
"path-to-regexp": "0.1.7", "path-to-regexp": "0.1.7",
"proxy-addr": "2.0.4", "proxy-addr": "~2.0.4",
"qs": "6.5.2", "qs": "6.5.2",
"range-parser": "1.2.0", "range-parser": "~1.2.0",
"safe-buffer": "5.1.2", "safe-buffer": "5.1.2",
"send": "0.16.2", "send": "0.16.2",
"serve-static": "1.13.2", "serve-static": "1.13.2",
"setprototypeof": "1.1.0", "setprototypeof": "1.1.0",
"statuses": "1.4.0", "statuses": "~1.4.0",
"type-is": "1.6.16", "type-is": "~1.6.16",
"utils-merge": "1.0.1", "utils-merge": "1.0.1",
"vary": "1.1.2" "vary": "~1.1.2"
}, },
"dependencies": { "dependencies": {
"statuses": { "statuses": {
...@@ -617,12 +617,12 @@ ...@@ -617,12 +617,12 @@
"integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
"requires": { "requires": {
"debug": "2.6.9", "debug": "2.6.9",
"encodeurl": "1.0.2", "encodeurl": "~1.0.2",
"escape-html": "1.0.3", "escape-html": "~1.0.3",
"on-finished": "2.3.0", "on-finished": "~2.3.0",
"parseurl": "1.3.2", "parseurl": "~1.3.2",
"statuses": "1.4.0", "statuses": "~1.4.0",
"unpipe": "1.0.0" "unpipe": "~1.0.0"
}, },
"dependencies": { "dependencies": {
"statuses": { "statuses": {
...@@ -647,10 +647,10 @@ ...@@ -647,10 +647,10 @@
"resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
"integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
"requires": { "requires": {
"depd": "1.1.2", "depd": "~1.1.2",
"inherits": "2.0.3", "inherits": "2.0.3",
"setprototypeof": "1.1.0", "setprototypeof": "1.1.0",
"statuses": "1.5.0" "statuses": ">= 1.4.0 < 2"
} }
}, },
"iconv-lite": { "iconv-lite": {
...@@ -658,7 +658,7 @@ ...@@ -658,7 +658,7 @@
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
"integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
"requires": { "requires": {
"safer-buffer": "2.1.2" "safer-buffer": ">= 2.1.2 < 3"
} }
}, },
"inherits": { "inherits": {
...@@ -676,15 +676,15 @@ ...@@ -676,15 +676,15 @@
"resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.3.0.tgz", "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.3.0.tgz",
"integrity": "sha512-oge/hvlmeJCH+iIz1DwcO7vKPkNGJHhgkspk8OH3VKlw+mbi42WtD4ig1+VXRln765vxptAv+xT26Fd3cteqag==", "integrity": "sha512-oge/hvlmeJCH+iIz1DwcO7vKPkNGJHhgkspk8OH3VKlw+mbi42WtD4ig1+VXRln765vxptAv+xT26Fd3cteqag==",
"requires": { "requires": {
"jws": "3.1.5", "jws": "^3.1.5",
"lodash.includes": "4.3.0", "lodash.includes": "^4.3.0",
"lodash.isboolean": "3.0.3", "lodash.isboolean": "^3.0.3",
"lodash.isinteger": "4.0.4", "lodash.isinteger": "^4.0.4",
"lodash.isnumber": "3.0.3", "lodash.isnumber": "^3.0.3",
"lodash.isplainobject": "4.0.6", "lodash.isplainobject": "^4.0.6",
"lodash.isstring": "4.0.1", "lodash.isstring": "^4.0.1",
"lodash.once": "4.1.1", "lodash.once": "^4.0.0",
"ms": "2.1.1" "ms": "^2.1.1"
}, },
"dependencies": { "dependencies": {
"ms": { "ms": {
...@@ -701,7 +701,7 @@ ...@@ -701,7 +701,7 @@
"requires": { "requires": {
"buffer-equal-constant-time": "1.0.1", "buffer-equal-constant-time": "1.0.1",
"ecdsa-sig-formatter": "1.0.10", "ecdsa-sig-formatter": "1.0.10",
"safe-buffer": "5.1.2" "safe-buffer": "^5.0.1"
} }
}, },
"jws": { "jws": {
...@@ -709,8 +709,8 @@ ...@@ -709,8 +709,8 @@
"resolved": "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz", "resolved": "https://registry.npmjs.org/jws/-/jws-3.1.5.tgz",
"integrity": "sha512-GsCSexFADNQUr8T5HPJvayTjvPIfoyJPtLQBwn5a4WZQchcrPMPMAWcC1AzJVRDKyD6ZPROPAxgv6rfHViO4uQ==", "integrity": "sha512-GsCSexFADNQUr8T5HPJvayTjvPIfoyJPtLQBwn5a4WZQchcrPMPMAWcC1AzJVRDKyD6ZPROPAxgv6rfHViO4uQ==",
"requires": { "requires": {
"jwa": "1.1.6", "jwa": "^1.1.5",
"safe-buffer": "5.1.2" "safe-buffer": "^5.0.1"
} }
}, },
"kareem": { "kareem": {
...@@ -799,7 +799,7 @@ ...@@ -799,7 +799,7 @@
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz",
"integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==", "integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==",
"requires": { "requires": {
"mime-db": "1.37.0" "mime-db": "~1.37.0"
} }
}, },
"mongodb": { "mongodb": {
...@@ -808,7 +808,7 @@ ...@@ -808,7 +808,7 @@
"integrity": "sha512-E5QJuXQoMlT7KyCYqNNMfAkhfQD79AT4F8Xd+6x37OX+8BL17GyXyWvfm6wuyx4wnzCCPoCSLeMeUN2S7dU9yw==", "integrity": "sha512-E5QJuXQoMlT7KyCYqNNMfAkhfQD79AT4F8Xd+6x37OX+8BL17GyXyWvfm6wuyx4wnzCCPoCSLeMeUN2S7dU9yw==",
"requires": { "requires": {
"mongodb-core": "3.1.5", "mongodb-core": "3.1.5",
"safe-buffer": "5.1.2" "safe-buffer": "^5.1.2"
} }
}, },
"mongodb-core": { "mongodb-core": {
...@@ -816,10 +816,10 @@ ...@@ -816,10 +816,10 @@
"resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.1.5.tgz", "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.1.5.tgz",
"integrity": "sha512-emT/tM4ZBinqd6RZok+EzDdtN4LjYJIckv71qQVOEFmvXgT5cperZegVmTgox/1cx4XQu6LJ5ZuIwipP/eKdQg==", "integrity": "sha512-emT/tM4ZBinqd6RZok+EzDdtN4LjYJIckv71qQVOEFmvXgT5cperZegVmTgox/1cx4XQu6LJ5ZuIwipP/eKdQg==",
"requires": { "requires": {
"bson": "1.1.0", "bson": "^1.1.0",
"require_optional": "1.0.1", "require_optional": "^1.0.1",
"safe-buffer": "5.1.2", "safe-buffer": "^5.1.2",
"saslprep": "1.0.2" "saslprep": "^1.0.0"
}, },
"dependencies": { "dependencies": {
"bson": { "bson": {
...@@ -835,7 +835,7 @@ ...@@ -835,7 +835,7 @@
"integrity": "sha512-az9DtkYDuZFRpCa8aCnGHQP/up/P0fku8omtYxVwBAlQElO/yCJpKpIAR91szRbua6k9WNGpNde4KjdbA79Spg==", "integrity": "sha512-az9DtkYDuZFRpCa8aCnGHQP/up/P0fku8omtYxVwBAlQElO/yCJpKpIAR91szRbua6k9WNGpNde4KjdbA79Spg==",
"requires": { "requires": {
"async": "2.6.1", "async": "2.6.1",
"bson": "1.0.9", "bson": "~1.0.5",
"kareem": "2.3.0", "kareem": "2.3.0",
"lodash.get": "4.4.2", "lodash.get": "4.4.2",
"mongodb": "3.1.6", "mongodb": "3.1.6",
...@@ -859,11 +859,11 @@ ...@@ -859,11 +859,11 @@
"resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz", "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz",
"integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==", "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==",
"requires": { "requires": {
"basic-auth": "2.0.1", "basic-auth": "~2.0.0",
"debug": "2.6.9", "debug": "2.6.9",
"depd": "1.1.2", "depd": "~1.1.2",
"on-finished": "2.3.0", "on-finished": "~2.3.0",
"on-headers": "1.0.1" "on-headers": "~1.0.1"
} }
}, },
"mpath": { "mpath": {
...@@ -926,17 +926,53 @@ ...@@ -926,17 +926,53 @@
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
"integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
}, },
"passport": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/passport/-/passport-0.4.0.tgz",
"integrity": "sha1-xQlWkTR71a07XhgCOMORTRbwWBE=",
"requires": {
"passport-strategy": "1.x.x",
"pause": "0.0.1"
}
},
"passport-jwt": {
"version": "4.0.0",
"resolved": "http://registry.npmjs.org/passport-jwt/-/passport-jwt-4.0.0.tgz",
"integrity": "sha512-BwC0n2GP/1hMVjR4QpnvqA61TxenUMlmfNjYNgK0ZAs0HK4SOQkHcSv4L328blNTLtHq7DbmvyNJiH+bn6C5Mg==",
"requires": {
"jsonwebtoken": "^8.2.0",
"passport-strategy": "^1.0.0"
}
},
"passport-local": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/passport-local/-/passport-local-1.0.0.tgz",
"integrity": "sha1-H+YyaMkudWBmJkN+O5BmYsFbpu4=",
"requires": {
"passport-strategy": "1.x.x"
}
},
"passport-strategy": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/passport-strategy/-/passport-strategy-1.0.0.tgz",
"integrity": "sha1-tVOaqPwiWj0a0XlHbd8ja0QPUuQ="
},
"path-to-regexp": { "path-to-regexp": {
"version": "0.1.7", "version": "0.1.7",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
}, },
"pause": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/pause/-/pause-0.0.1.tgz",
"integrity": "sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10="
},
"proxy-addr": { "proxy-addr": {
"version": "2.0.4", "version": "2.0.4",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz",
"integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==",
"requires": { "requires": {
"forwarded": "0.1.2", "forwarded": "~0.1.2",
"ipaddr.js": "1.8.0" "ipaddr.js": "1.8.0"
} }
}, },
...@@ -971,8 +1007,8 @@ ...@@ -971,8 +1007,8 @@
"resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz",
"integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==",
"requires": { "requires": {
"resolve-from": "2.0.0", "resolve-from": "^2.0.0",
"semver": "5.6.0" "semver": "^5.1.0"
} }
}, },
"resolve-from": { "resolve-from": {
...@@ -996,7 +1032,7 @@ ...@@ -996,7 +1032,7 @@
"integrity": "sha512-4cDsYuAjXssUSjxHKRe4DTZC0agDwsCqcMqtJAQPzC74nJ7LfAJflAtC1Zed5hMzEQKj82d3tuzqdGNRsLJ4Gw==", "integrity": "sha512-4cDsYuAjXssUSjxHKRe4DTZC0agDwsCqcMqtJAQPzC74nJ7LfAJflAtC1Zed5hMzEQKj82d3tuzqdGNRsLJ4Gw==",
"optional": true, "optional": true,
"requires": { "requires": {
"sparse-bitfield": "3.0.3" "sparse-bitfield": "^3.0.3"
} }
}, },
"semver": { "semver": {
...@@ -1010,18 +1046,18 @@ ...@@ -1010,18 +1046,18 @@
"integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
"requires": { "requires": {
"debug": "2.6.9", "debug": "2.6.9",
"depd": "1.1.2", "depd": "~1.1.2",
"destroy": "1.0.4", "destroy": "~1.0.4",
"encodeurl": "1.0.2", "encodeurl": "~1.0.2",
"escape-html": "1.0.3", "escape-html": "~1.0.3",
"etag": "1.8.1", "etag": "~1.8.1",
"fresh": "0.5.2", "fresh": "0.5.2",
"http-errors": "1.6.3", "http-errors": "~1.6.2",
"mime": "1.4.1", "mime": "1.4.1",
"ms": "2.0.0", "ms": "2.0.0",
"on-finished": "2.3.0", "on-finished": "~2.3.0",
"range-parser": "1.2.0", "range-parser": "~1.2.0",
"statuses": "1.4.0" "statuses": "~1.4.0"
}, },
"dependencies": { "dependencies": {
"statuses": { "statuses": {
...@@ -1036,9 +1072,9 @@ ...@@ -1036,9 +1072,9 @@
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
"integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
"requires": { "requires": {
"encodeurl": "1.0.2", "encodeurl": "~1.0.2",
"escape-html": "1.0.3", "escape-html": "~1.0.3",
"parseurl": "1.3.2", "parseurl": "~1.3.2",
"send": "0.16.2" "send": "0.16.2"
} }
}, },
...@@ -1058,7 +1094,7 @@ ...@@ -1058,7 +1094,7 @@
"integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
"optional": true, "optional": true,
"requires": { "requires": {
"memory-pager": "1.1.0" "memory-pager": "^1.0.2"
} }
}, },
"statuses": { "statuses": {
...@@ -1072,7 +1108,7 @@ ...@@ -1072,7 +1108,7 @@
"integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
"requires": { "requires": {
"media-typer": "0.3.0", "media-typer": "0.3.0",
"mime-types": "2.1.21" "mime-types": "~2.1.18"
} }
}, },
"unpipe": { "unpipe": {
......
...@@ -14,6 +14,9 @@ ...@@ -14,6 +14,9 @@
"express": "^4.16.4", "express": "^4.16.4",
"jsonwebtoken": "^8.3.0", "jsonwebtoken": "^8.3.0",
"mongoose": "^5.3.7", "mongoose": "^5.3.7",
"morgan": "^1.9.1" "morgan": "^1.9.1",
"passport": "^0.4.0",
"passport-jwt": "^4.0.0",
"passport-local": "^1.0.0"
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment