Skip to content

Commit 5786757

Browse files
committed
fix(security): remove hash and salt from default selection
Closes #24.
1 parent 177967a commit 5786757

File tree

4 files changed

+17
-17
lines changed

4 files changed

+17
-17
lines changed

app/templates/server/api/user(auth)/user.controller.js

+8-12
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
'use strict';
22

3-
var config = require('../../config/environment');
4-
var jwt = require('jsonwebtoken');
3+
var _ = require('lodash');
4+
5+
var authService = require('../../auth/auth.service');
56
var User = require('./user.model');
67

78
function handleError (res, err) {
@@ -27,12 +28,10 @@ function handleError (res, err) {
2728
exports.create = function (req, res) {
2829
User.create(req.body, function (err, user) {
2930
if (err) { return handleError(res, err); }
30-
var token = jwt.sign(
31-
{ _id: user._id },
32-
config.secrets.session,
33-
{ expiresInMinutes: 60 * 5 }
34-
);
35-
res.status(201).json({ token: token, user: user });
31+
res.status(201).json({
32+
user: _.omit(user.toObject(), ['passwordHash', 'salt']),
33+
token: authService.signToken(user._id)
34+
});
3635
});
3736
};
3837
<% if (!filters.apidoc) { %>
@@ -51,10 +50,7 @@ exports.create = function (req, res) {
5150
*
5251
*/<% } %>
5352
exports.getMe = function (req, res) {
54-
var userId = req.user._id;
55-
User.findOne({
56-
_id: userId
57-
}, '-salt -passwordHash', function (err, user) {
53+
User.findById(req.user._id, function (err, user) {
5854
if (err) { return handleError(res, err); }
5955
if (!user) { return res.json(401); }
6056
res.status(200).json(user);

app/templates/server/api/user(auth)/user.model.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ var Schema = mongoose.Schema;
66

77
var UserSchema = new Schema({
88
email: String,
9-
passwordHash: String,
10-
salt: String
9+
passwordHash: { type: String, select: false },
10+
salt: { type: String, select: false }
1111
});
1212

1313
/**

app/templates/server/auth(auth)/local/index.js

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
'use strict';
22

3+
var _ = require('lodash');
34
var express = require('express');
45
var passport = require('passport');
6+
57
var auth = require('../auth.service');
68

79
var router = express.Router();
@@ -11,8 +13,10 @@ router.post('/', function (req, res, next) {
1113
var error = err || info;
1214
if (error) { return res.status(401).json(error); }
1315
if (!user) { return res.status(401).json({ msg: 'login failed' }); }
14-
var token = auth.signToken(user._id);
15-
res.json({ token: token, user: user });
16+
res.json({
17+
user: _.omit(user.toObject(), ['passwordHash', 'salt']),
18+
token: auth.signToken(user._id)
19+
});
1620
})(req, res, next);
1721
});
1822

app/templates/server/auth(auth)/local/passport.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ passport.use(new LocalStrategy({
1212
function (email, password, done) {
1313
User.findOne({
1414
email: email
15-
}, function (err, user) {
15+
}, '+passwordHash +salt', function (err, user) {
1616
if (err) { return done(err); }
1717
if (!user) { return done(null, false, { msg: 'email not found' }); }
1818
if (!user.authenticate(password)) {

0 commit comments

Comments
 (0)