Files
bro-app-gateway/app/services.js
brow3c ad0868a38f dsfdf
2021-06-07 03:07:56 +09:00

89 lines
2.8 KiB
JavaScript

var uuid = require('node-uuid'),
authCodes = {},
accessTokens = {},
tokenHeartbeats = {},
clients = {
'7tmK4rF8As8CtRw5': {
id: '1',
secret: 'cgzLcVFku5zEvXkCKNZsAbxXQENFqPDx2kfjnMGd3m9BczehmFt2pw9r9MdASSFt',
grantTypes: ['client_credentials']
},
'devLdadSKsTP92JJ': {
id: '2',
secret: 'ngKRm8aDHq4g7pskRTyPwFTrsE7Kf8feVpBvE5SjYwXUhyGKKa4NeqYWwNjFWtv7',
grantTypes: ['client_credentials']
}
};
const services = {
// flushExpiredTokens: function (maxAge) {
// let oldTokens = [];
// let now = new Date().getTime();
// for (let token in accessTokens) {
// if (tokenHeartbeats[token] && tokenHeartbeats[token] < now - 1000 * maxAge) {
// oldTokens.push(token)
// delete accessTokens[token]
// }
// }
// console.log('Flush expired tokens execution completed.', oldTokens)
// },
getAccessTokens: function () {
return accessTokens;
},
getClients: function () {
return clients;
},
heartbeat: {
puls: function (token) {
tokenHeartbeats[token] = new Date().getTime();
},
signal: function (authHeader) {
if (authHeader) {
let token = authHeader.split(' ').pop()
if (accessTokens[token]) {
services.heartbeat.puls(token)
return tokenHeartbeats[token];
}
}
return false;
}
},
clientService: {
getById: function (id, callback) {
return callback(null, clients[id]);
},
isValidRedirectUri: function (/*client, requestedUri*/) {
return true;
}
},
tokenService: {
generateToken: function (callback) {
callback(null, uuid.v4());
},
generateAuthorizationCode: function (callback) {
callback(null, uuid.v4());
}
},
authorizationService: {
saveAuthorizationCode: function (codeData, callback) {
authCodes[codeData.code] = codeData;
return callback(null, authCodes[codeData.code]);
},
saveAccessToken: function (tokenData, callback) {
accessTokens[tokenData.access_token] = tokenData;
return callback(null, accessTokens[tokenData.access_token]);
},
getAuthorizationCode: function (code, callback) {
return callback(null, authCodes[code]);
},
getAccessToken: function (token, callback) {
return callback(null, accessTokens[token]);
}
},
membershipService: {
areUserCredentialsValid: function (userName, password, scope, callback) {
return callback(null, true);
}
}
}
module.exports = services