merged private server and console to private-cloud
This commit is contained in:
126
console/work_unit/authentication_logic.js
Normal file
126
console/work_unit/authentication_logic.js
Normal file
@@ -0,0 +1,126 @@
|
||||
/**
|
||||
* Created by Strawmanbobi
|
||||
* 2016-11-27
|
||||
*/
|
||||
|
||||
require('../mini_poem/configuration/constants');
|
||||
|
||||
var AdminAuth = require('../authentication/admin_auth.js');
|
||||
var RequestSender = require('../mini_poem/http/request.js');
|
||||
|
||||
var ErrorCode = require('../constants/error_code.js');
|
||||
var logger = require('../mini_poem/logging/logger4js').helper;
|
||||
|
||||
var errorCode = new ErrorCode();
|
||||
|
||||
var adminAuth = new AdminAuth(REDIS_HOST, REDIS_PORT, null, REDIS_PASSWORD);
|
||||
|
||||
var SIGN_IN_SERVICE = "/irext/certificate/admin_login";
|
||||
var CHANGE_PASSWORD_SERVICE = "/irext/certificate/change_pw";
|
||||
|
||||
exports.adminLoginWorkUnit = function (userName, password, callback) {
|
||||
var queryParams = new Map();
|
||||
|
||||
var requestSender =
|
||||
new RequestSender(EXTERNAL_SERVER_ADDRESS,
|
||||
EXTERNAL_SERVER_PORT,
|
||||
SIGN_IN_SERVICE,
|
||||
queryParams);
|
||||
|
||||
var signinInfo = {
|
||||
user_name : userName,
|
||||
password : password
|
||||
};
|
||||
requestSender.sendPostRequest(signinInfo,
|
||||
function(signInRequestErr, signInResponse) {
|
||||
if (signInRequestErr == errorCode.SUCCESS.code && null != signInResponse) {
|
||||
var resp = JSON.parse(signInResponse);
|
||||
if (undefined != resp.entity) {
|
||||
var admin = resp.entity;
|
||||
var token,
|
||||
key,
|
||||
ttl = 24 * 60 * 60 * 14,
|
||||
timeStamp,
|
||||
name;
|
||||
timeStamp = new Date().getTime();
|
||||
token = admin.token;
|
||||
key = "admin_" + admin.id;
|
||||
adminAuth.setAuthInfo(key, token, ttl, function(setAdminAuthErr) {
|
||||
if (errorCode.SUCCESS.code == setAdminAuthErr.code) {
|
||||
key = "admin_name_" + admin.id;
|
||||
name = admin.user_name;
|
||||
adminAuth.setAuthInfo(key, name, ttl, function(setAdminNameErr) {
|
||||
if (errorCode.SUCCESS.code == setAdminNameErr.code) {
|
||||
admin.token = token;
|
||||
}
|
||||
callback(setAdminNameErr, admin);
|
||||
});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
callback(errorCode.FAILED, null);
|
||||
}
|
||||
} else {
|
||||
logger.error("admin sign in failed");
|
||||
callback(errorCode.FAILED, null);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
exports.verifyTokenWorkUnit = function (id, token, callback) {
|
||||
var key = "admin_" + id;
|
||||
adminAuth.validateAuthInfo(key, token, function(validateAdminAuthErr, result) {
|
||||
if (validateAdminAuthErr.code != errorCode.SUCCESS.code) {
|
||||
logger.info("token validation failed");
|
||||
}
|
||||
callback(validateAdminAuthErr);
|
||||
});
|
||||
};
|
||||
|
||||
exports.verifyTokenWithPermissionWorkUnit = function (id, token, permissions, callback) {
|
||||
var key = "admin_" + id;
|
||||
adminAuth.validateAuthInfo(key, token, function(validateAdminAuthErr, result) {
|
||||
if (validateAdminAuthErr.code == errorCode.SUCCESS.code) {
|
||||
logger.info("token validation successfully");
|
||||
if (undefined != result && null != result && "" != result) {
|
||||
if (result.indexOf(permissions) != -1) {
|
||||
callback(errorCode.SUCCESS);
|
||||
} else {
|
||||
logger.info("permission do not match");
|
||||
callback(errorCode.AUTHENTICATION_FAILURE);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
logger.info("token validation failed");
|
||||
callback(validateAdminAuthErr);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
exports.sendChangePwMailWorkUnit = function (userName, callbackURL, callback) {
|
||||
var queryParams = new Map();
|
||||
|
||||
var requestSender =
|
||||
new RequestSender(EXTERNAL_SERVER_ADDRESS,
|
||||
EXTERNAL_SERVER_PORT,
|
||||
CHANGE_PASSWORD_SERVICE,
|
||||
queryParams);
|
||||
|
||||
var userInfo = {
|
||||
user_name : userName,
|
||||
callback_url :callbackURL
|
||||
};
|
||||
requestSender.sendPostRequest(userInfo,
|
||||
function(changePwRequestErr, changePwResponse) {
|
||||
if (changePwRequestErr == errorCode.SUCCESS.code && null != changePwResponse) {
|
||||
var resp = JSON.parse(changePwResponse);
|
||||
if (undefined != resp.status && errorCode.SUCCESS == resp.status) {
|
||||
callback(errorCode.SUCCESS);
|
||||
} else {
|
||||
callback(errorCode.FAILED);
|
||||
}
|
||||
} else {
|
||||
callback(errorCode.FAILED);
|
||||
}
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user