commonroutesServer/controllers/adminController.js
controllers/adminController.jsRaw
1//File: controllers/userController.js
2var mongoose = require('mongoose');
3var userModel = mongoose.model('adminModel');
4
5var config = require('../config');
6var pageSize = config.pageSize;
7
8/* */
9var jwt = require('jsonwebtoken'); // used to create, sign, and verify tokens
10var express = require("express");
11var app = express();
12var config = require('../config'); // get our config file
13app.set('superSecret', config.secret); // secret variable
14
15var crypto = require('crypto');
16/* */
17
18var request = require('request');
19
20
21//POST - Insert a new User in the DB
22exports.signup = function(req, res) {
23 //get random avatar
24 var r = getRand(1, 10);
25 randAvatar = getAvatar(r);
26
27
28 var user = new userModel({
29 username: req.body.username,
30 password: crypto.createHash('sha256').update(req.body.password).digest('base64'),
31 description: req.body.description,
32 avatar: randAvatar,
33 email: req.body.email,
34 phone: req.body.phone,
35 telegram: req.body.telegram
36 });
37 if (user.username == undefined) {
38 return res.status(500).jsonp("empty inputs");
39 } else if (user.password == undefined) {
40 return res.status(500).jsonp("empty inputs");
41 } else if (user.email == undefined) {
42 return res.status(500).jsonp("empty inputs");
43 }
44
45 user.save(function(err, user) {
46 if (err) return res.send(500, err.message);
47
48 exports.login(req, res);
49 });
50};
51
52
53//POST - auth user
54exports.login = function(req, res) {
55 // find the user
56 userModel.findOne({
57 username: req.body.username
58 })
59 .select('+password')
60 .exec(function(err, user) {
61
62 if (err) throw err;
63
64 if (!user) {
65 res.json({
66 success: false,
67 message: 'Authentication failed. User not found.'
68 });
69 } else if (user) {
70
71 req.body.password = crypto.createHash('sha256').update(req.body.password).digest('base64');
72
73 // check if password matches
74 if (user.password != req.body.password) {
75 res.json({
76 success: false,
77 message: 'Authentication failed. Wrong password.'
78 });
79 } else {
80
81 // if user is found and password is right
82 // create a token
83 var token = jwt.sign({
84 foo: 'bar'
85 }, app.get('superSecret'), {
86 //expiresInMinutes: 1440 // expires in 24 hours
87 //expiresIn: '60m'
88 });
89 user.token = token;
90 user.save(function(err, user) {
91 if (err) return res.send(500, err.message);
92 //res.status(200).jsonp(travel);
93 console.log(user);
94 // return the information including token as JSON
95 user.password = "";
96 res.json({
97 success: true,
98 message: 'Enjoy your token!',
99 token: token,
100 user: user
101 });
102 });
103
104 }
105
106 }
107
108 });
109};
110exports.changePassword = function(req, res) {
111 //if(req.body.)
112 userModel.update({
113 'token': req.headers['x-access-token']
114 }, req.body,
115 function(err) {
116 if (err) return console.log(err);
117 exports.getUserByToken(req, res);
118 });
119};