Skip to content

Commit 9de368b

Browse files
Restyled by clang-format
1 parent 0ffe546 commit 9de368b

File tree

8 files changed

+781
-840
lines changed

8 files changed

+781
-840
lines changed

Utils/utils.js

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,19 @@
11
const crypto = require("crypto");
22

3-
const genRandomString = function (length) {
4-
return crypto
5-
.randomBytes(Math.ceil(length / 2))
6-
.toString("hex") /** convert to hexadecimal format */
7-
.slice(0, length); /** return required number of characters */
3+
const genRandomString = function(length) {
4+
return crypto.randomBytes(Math.ceil(length / 2))
5+
.toString("hex") /** convert to hexadecimal format */
6+
.slice(0, length); /** return required number of characters */
87
};
98

109
const hashPassword = async (password, salt) => {
1110
let config = {
12-
iterations: 1000,
11+
iterations : 1000,
1312
};
1413
return new Promise((resolve, reject) => {
15-
crypto.pbkdf2(
16-
password,
17-
salt,
18-
config.iterations,
19-
32,
20-
"sha512",
21-
(err, derivedKey) =>
22-
err ? reject(err) : resolve(derivedKey.toString("hex"))
23-
);
14+
crypto.pbkdf2(password, salt, config.iterations, 32, "sha512",
15+
(err, derivedKey) =>
16+
err ? reject(err) : resolve(derivedKey.toString("hex")));
2417
});
2518
};
2619

app.js

Lines changed: 18 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,14 @@ const mongoose = require("mongoose");
2626

2727
const connectDB = async () => {
2828
const con = await mongoose.connect(process.env.mongoUrl, {
29-
useNewUrlParser: true,
30-
useCreateIndex: true,
31-
useFindAndModify: false,
32-
useUnifiedTopology: true,
33-
autoIndex: true,
29+
useNewUrlParser : true,
30+
useCreateIndex : true,
31+
useFindAndModify : false,
32+
useUnifiedTopology : true,
33+
autoIndex : true,
3434
});
3535
console.log(
36-
chalk.bgGreen.black(`MongoDB Connected: ${con.connection.host}.`)
37-
);
36+
chalk.bgGreen.black(`MongoDB Connected: ${con.connection.host}.`));
3837
};
3938

4039
connectDB();
@@ -44,8 +43,8 @@ var app = express();
4443
app.enable("trust proxy");
4544

4645
// Set Body parser, reading data from body into req.body
47-
app.use(express.json({ limit: "10kb" }));
48-
app.use(express.urlencoded({ extended: true, limit: "10kb" }));
46+
app.use(express.json({limit : "10kb"}));
47+
app.use(express.urlencoded({extended : true, limit : "10kb"}));
4948

5049
// Set security HTTP headers
5150
app.use(helmet());
@@ -54,13 +53,13 @@ app.use(helmet());
5453
app.set("views", path.join(__dirname, "views"));
5554
app.set("view engine", "jade");
5655

57-
app.use(morgan("combined", { stream: winston.stream }));
56+
app.use(morgan("combined", {stream : winston.stream}));
5857

5958
// Limit requests from the same API
6059
const limiter = rateLimit({
61-
max: 100,
62-
windowMs: 60 * 60 * 1000,
63-
messege: "Too many requests from this IP, Please try again in an hour!",
60+
max : 100,
61+
windowMs : 60 * 60 * 1000,
62+
messege : "Too many requests from this IP, Please try again in an hour!",
6463
});
6564
app.use("/", limiter);
6665

@@ -89,25 +88,20 @@ app.use("/users", usersRouter);
8988
app.use("/quizes", quizRouter);
9089

9190
// catch 404 and forward to error handler
92-
app.use(function (req, res, next) {
93-
next(createError(404));
94-
});
91+
app.use(function(req, res, next) { next(createError(404)); });
9592

9693
// error handler
97-
app.use(function (err, req, res, next) {
94+
app.use(function(err, req, res, next) {
9895
// set locals, only providing error in development
9996
res.locals.message = err.message;
10097
res.locals.error = req.app.get("env") === "development" ? err : {};
10198

102-
winston.error(
103-
`${err.status || 500} - ${err.message} - ${req.originalUrl} - ${
104-
req.method
105-
} - ${req.ip}`
106-
);
99+
winston.error(`${err.status || 500} - ${err.message} - ${req.originalUrl} - ${
100+
req.method} - ${req.ip}`);
107101
// render the error page
108102
res.status(err.status || 500);
109-
res.json({ err, message: err.message });
110-
//res.render("error");
103+
res.json({err, message : err.message});
104+
// res.render("error");
111105
});
112106

113107
module.exports = app;

authenticate.js

Lines changed: 36 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -6,69 +6,55 @@ const jwt = require("jsonwebtoken");
66

77
const User = require("./models/Users");
88

9-
const { comparePassword } = require("./Utils/utils");
9+
const {comparePassword} = require("./Utils/utils");
1010

11-
passport.use(
12-
new LocalStrategy(function (username, password, done) {
13-
User.findOne(
14-
{ username: username },
15-
"username isAdmin passwordHash passwordSalt",
16-
async function (err, user) {
17-
if (err) {
18-
return done(err);
19-
}
11+
passport.use(new LocalStrategy(function(username, password, done) {
12+
User.findOne({username : username},
13+
"username isAdmin passwordHash passwordSalt",
14+
async function(err, user) {
15+
if (err) {
16+
return done(err);
17+
}
2018

21-
if (!user) {
22-
return done(null, false, { message: "Incorrect Username." });
23-
}
24-
const verifyPassword = await comparePassword(
25-
user.passwordHash,
26-
user.passwordSalt,
27-
password
28-
);
29-
if (!verifyPassword) {
30-
return done(null, false, { message: "Incorrect password." });
31-
}
19+
if (!user) {
20+
return done(null, false, {message : "Incorrect Username."});
21+
}
22+
const verifyPassword = await comparePassword(
23+
user.passwordHash, user.passwordSalt, password);
24+
if (!verifyPassword) {
25+
return done(null, false, {message : "Incorrect password."});
26+
}
3227

33-
return done(null, user);
34-
}
35-
);
36-
})
37-
);
28+
return done(null, user);
29+
});
30+
}));
3831

39-
passport.serializeUser(function (user, done) {
40-
done(null, user.id);
41-
});
32+
passport.serializeUser(function(user, done) { done(null, user.id); });
4233

43-
passport.deserializeUser(function (id, done) {
44-
User.findById(id, function (err, user) {
45-
done(err, user);
46-
});
47-
});
34+
passport.deserializeUser(function(
35+
id, done) { User.findById(id, function(err, user) { done(err, user); }); });
4836

49-
exports.generateToken = function (user) {
50-
return jwt.sign(user, process.env.TokenSecret, { expiresIn: 36000 });
37+
exports.generateToken = function(user) {
38+
return jwt.sign(user, process.env.TokenSecret, {expiresIn : 36000});
5139
};
5240

5341
let opts = {};
5442
opts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();
5543
opts.secretOrKey = process.env.TokenSecret;
5644

57-
passport.use(
58-
new JwtStrategy(opts, (jwt_payload, done) => {
59-
User.findOne({ _id: jwt_payload._id }, "username isAdmin", (err, user) => {
60-
if (err) {
61-
return done(err, false);
62-
} else if (user) {
63-
return done(null, user);
64-
} else {
65-
return done(null, false);
66-
}
67-
});
68-
})
69-
);
45+
passport.use(new JwtStrategy(opts, (jwt_payload, done) => {
46+
User.findOne({_id : jwt_payload._id}, "username isAdmin", (err, user) => {
47+
if (err) {
48+
return done(err, false);
49+
} else if (user) {
50+
return done(null, user);
51+
} else {
52+
return done(null, false);
53+
}
54+
});
55+
}));
7056

71-
exports.verifyUser = passport.authenticate("jwt", { session: false });
57+
exports.verifyUser = passport.authenticate("jwt", {session : false});
7258
exports.verifyAdmin = (req, res, next) => {
7359
if (req.user && req.user.isAdmin) {
7460
return next();

models/Users.js

Lines changed: 21 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,37 +2,31 @@ const mongoose = require("mongoose");
22

33
const Schema = mongoose.Schema;
44

5-
const UserSchema = new Schema(
6-
{
7-
username: {
8-
type: String,
9-
trim: true,
10-
required: true,
11-
max: 64,
12-
min: 3,
13-
},
5+
const UserSchema = new Schema({
6+
username : {
7+
type : String,
8+
trim : true,
9+
required : true,
10+
max : 64,
11+
min : 3,
12+
},
1413

15-
passwordSalt: {
16-
type: String,
17-
required: true,
18-
max:16
19-
},
14+
passwordSalt : {type : String, required : true, max : 16},
2015

21-
passwordHash: {
22-
type: String,
23-
required: true,
24-
},
16+
passwordHash : {
17+
type : String,
18+
required : true,
19+
},
2520

26-
isAdmin: {
27-
type: Boolean,
28-
required: true,
29-
default: false,
30-
},
21+
isAdmin : {
22+
type : Boolean,
23+
required : true,
24+
default : false,
3125
},
32-
{
33-
timestamps: true,
34-
}
35-
);
26+
},
27+
{
28+
timestamps : true,
29+
});
3630

3731
const User = mongoose.model("Users", UserSchema);
3832

0 commit comments

Comments
 (0)