This repository has been archived by the owner on Apr 13, 2022. It is now read-only.
/
tokenGen.js
64 lines (61 loc) · 1.92 KB
/
tokenGen.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
(function() {
global._equire = function(name) {
return require(__dirname + '/' + name);
};
})();
var Token = _equire('models/token.js');
var jwt = require('jwt-simple');
var config = _equire('config/config.js');
var commonIssuer = 'BHLServer';
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var mode = process.env.NODE_ENV;
mongoose.connect(config.developmentDB);
function generateToken(payload) {
var tokenSubject = payload.sub;
var tokenString = jwt.encode(payload, config.secret);
Token.find({
subject: payload.sub
}, function(err, result) {
if (result) {
Token.remove({
subject: payload.sub
}, function(err) {
if (err) {
throw err;
} else {
console.log('Previous token deleted.'.red);
var saveToken = new Token();
saveToken.token = tokenString;
saveToken.subject = tokenSubject;
saveToken.iat = payload.iat;
saveToken.save(function(err, result) {
console.log(result);
mongoose.connection.close();
});
}
});
} else {
var saveToken = new Token();
saveToken.token = tokenString;
saveToken.subject = tokenSubject;
saveToken.save(function(err, result) {
console.log(result);
mongoose.connection.close();
});
}
});
}
var prompt = require('prompt');
prompt.message = ":".green;
prompt.delimiter = "".green;
prompt.start();
prompt.get(['Subject'], function (err, result) {
var date = new Date().getTime();
var payload = {
sub: result.Subject,
iat: date,
iss: 'BHLServer'
};
return generateToken(payload);
});