updated admin auth procedure - debug 1
This commit is contained in:
@@ -40,8 +40,8 @@ exports.setupEnvironment = function () {
|
|||||||
REDIS_HOST = "localhost";
|
REDIS_HOST = "localhost";
|
||||||
REDIS_PORT = "6379";
|
REDIS_PORT = "6379";
|
||||||
REDIS_PASSWORD = "";
|
REDIS_PASSWORD = "";
|
||||||
EXTERNAL_SERVER_ADDRESS = "irext.net";
|
EXTERNAL_SERVER_ADDRESS = "www.strawmanbobi.com";
|
||||||
EXTERNAL_SERVER_PORT = "80"
|
EXTERNAL_SERVER_PORT = "8200"
|
||||||
} else if (enums.APP_USERDEBUG_MODE == env) {
|
} else if (enums.APP_USERDEBUG_MODE == env) {
|
||||||
MYSQL_DB_SERVER_ADDRESS = "localhost";
|
MYSQL_DB_SERVER_ADDRESS = "localhost";
|
||||||
MYSQL_DB_NAME = "irext";
|
MYSQL_DB_NAME = "irext";
|
||||||
@@ -54,7 +54,7 @@ exports.setupEnvironment = function () {
|
|||||||
REDIS_HOST = "localhost";
|
REDIS_HOST = "localhost";
|
||||||
REDIS_PORT = "6379";
|
REDIS_PORT = "6379";
|
||||||
REDIS_PASSWORD = "";
|
REDIS_PASSWORD = "";
|
||||||
EXTERNAL_SERVER_ADDRESS = "irext.net";
|
EXTERNAL_SERVER_ADDRESS = "www.strawmanbobi.com";
|
||||||
EXTERNAL_SERVER_PORT = "80"
|
EXTERNAL_SERVER_PORT = "8200"
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
SOURCE="."
|
SOURCE="."
|
||||||
TARGET="$POEM_APPLICATION/irext_console"
|
TARGET="$POEM_APPLICATION/irext_console"
|
||||||
MODULE_API="./web/api_doc/js/"
|
MODULE_API="./web/api_doc/js/"
|
||||||
@@ -44,9 +44,6 @@ npm install form-data
|
|||||||
echo "npm install async"
|
echo "npm install async"
|
||||||
npm install async
|
npm install async
|
||||||
|
|
||||||
echo "npm install nodemailer"
|
|
||||||
npm install nodemailer@0.7
|
|
||||||
|
|
||||||
echo "npm install done"
|
echo "npm install done"
|
||||||
|
|
||||||
echo "create logging directory"
|
echo "create logging directory"
|
||||||
@@ -9,7 +9,7 @@ var Admin = require('../model/admin_dao.js');
|
|||||||
var AdminAuth = require('../authority/admin_auth.js');
|
var AdminAuth = require('../authority/admin_auth.js');
|
||||||
var MD5 = require('../mini_poem/crypto/md5.js');
|
var MD5 = require('../mini_poem/crypto/md5.js');
|
||||||
var StringUtils = require('../mini_poem/utils/string_utils.js');
|
var StringUtils = require('../mini_poem/utils/string_utils.js');
|
||||||
var nodemailer = require('nodemailer');
|
var RequestSender = require('../mini_poem/http/request.js');
|
||||||
|
|
||||||
var Enums = require('../constants/enums.js');
|
var Enums = require('../constants/enums.js');
|
||||||
var ErrorCode = require('../constants/error_code.js');
|
var ErrorCode = require('../constants/error_code.js');
|
||||||
@@ -20,35 +20,45 @@ var errorCode = new ErrorCode();
|
|||||||
|
|
||||||
var adminAuth = new AdminAuth(REDIS_HOST, REDIS_PORT, REDIS_PASSWORD, null);
|
var adminAuth = new AdminAuth(REDIS_HOST, REDIS_PORT, REDIS_PASSWORD, null);
|
||||||
|
|
||||||
exports.adminLoginWorkUnit = function (userName, password, callback) {
|
var signInService = "/irext/certificate/admin_login";
|
||||||
var conditions = {
|
var changePwService = "/irext/certificate/change_pw";
|
||||||
user_name: userName,
|
|
||||||
password: password
|
|
||||||
};
|
|
||||||
Admin.findAdminsByConditions(conditions, 0, 1, "id", function(findAdminErr, admins) {
|
|
||||||
if (findAdminErr.code == errorCode.SUCCESS.code &&
|
|
||||||
null != admins && admins.length > 0) {
|
|
||||||
// add information of this user into cache
|
|
||||||
var userID,
|
|
||||||
token,
|
|
||||||
key,
|
|
||||||
ttl = 24 * 60 * 60 * 14,
|
|
||||||
timeStamp,
|
|
||||||
admin;
|
|
||||||
|
|
||||||
admin = admins[0];
|
exports.adminLoginWorkUnit = function (userName, password, callback) {
|
||||||
timeStamp = new Date().getTime();
|
var queryParams = new Map();
|
||||||
token = MD5.MD5(password + timeStamp);
|
|
||||||
token += "," + admin.permissions;
|
var requestSender =
|
||||||
key = "admin_" + admin.id;
|
new RequestSender(EXTERNAL_SERVER_ADDRESS,
|
||||||
adminAuth.setAuthInfo(key, token, ttl, function(setAdminAuthErr) {
|
EXTERNAL_SERVER_PORT,
|
||||||
admin.token = token;
|
signInService,
|
||||||
callback(setAdminAuthErr, admin);
|
queryParams);
|
||||||
});
|
|
||||||
} else {
|
var signinInfo = {
|
||||||
callback(errorCode.AUTHENTICATION_FAILURE, null);
|
user_name : userName,
|
||||||
}
|
password : password
|
||||||
});
|
};
|
||||||
|
requestSender.sendPostRequest(signinInfo,
|
||||||
|
function(signInRequestErr, signInResponse) {
|
||||||
|
if (signInRequestErr == errorCode.SUCCESS.code && null != signInResponse) {
|
||||||
|
var admin = signInResponse;
|
||||||
|
var userID,
|
||||||
|
token,
|
||||||
|
key,
|
||||||
|
ttl = 24 * 60 * 60 * 14,
|
||||||
|
timeStamp,
|
||||||
|
admin;
|
||||||
|
timeStamp = new Date().getTime();
|
||||||
|
token = MD5.MD5(password + timeStamp);
|
||||||
|
token += "," + admin.permissions;
|
||||||
|
key = "admin_" + admin.id;
|
||||||
|
adminAuth.setAuthInfo(key, token, ttl, function(setAdminAuthErr) {
|
||||||
|
admin.token = token;
|
||||||
|
callback(setAdminAuthErr, admin);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
logger.error("admin sign in failed");
|
||||||
|
callback(errorCode.FAILED, null);
|
||||||
|
}
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.verifyTokenWorkUnit = function (id, token, callback) {
|
exports.verifyTokenWorkUnit = function (id, token, callback) {
|
||||||
@@ -84,70 +94,25 @@ exports.verifyTokenWithPermissionWorkUnit = function (id, token, permissions, ca
|
|||||||
};
|
};
|
||||||
|
|
||||||
exports.sendChangePwMailWorkUnit = function (userName, callback) {
|
exports.sendChangePwMailWorkUnit = function (userName, callback) {
|
||||||
var conditions = {
|
var queryParams = new Map();
|
||||||
user_name: userName
|
|
||||||
};
|
|
||||||
Admin.findAdminsByConditions(conditions, 0, 1, "id", function(getAdminErr, admins) {
|
|
||||||
if (errorCode.SUCCESS.code == getAdminErr.code && undefined != admins && null != admins && admins.length > 0) {
|
|
||||||
var admin = admins[0];
|
|
||||||
var userEmail = admin.user_name;
|
|
||||||
var sendEmailErr;
|
|
||||||
var newPw = StringUtils.randomNumber(6);
|
|
||||||
var timeStamp = new Date().getTime();
|
|
||||||
var passwdKey = MD5.MD5(userName.toString() + timeStamp);
|
|
||||||
var passwdMD5 = MD5.MD5(newPw, true).toUpperCase();
|
|
||||||
var ttl = 2 * 60 * 60;
|
|
||||||
|
|
||||||
// save password fetch key and password MD5 value to cache first
|
var requestSender =
|
||||||
var smtpTransport = nodemailer.createTransport("SMTP", {
|
new RequestSender(EXTERNAL_SERVER_ADDRESS,
|
||||||
host: "smtp.163.com",
|
EXTERNAL_SERVER_PORT,
|
||||||
name: "",
|
changePwService,
|
||||||
secureConnection: true,
|
queryParams);
|
||||||
use_authentication: true,
|
|
||||||
port: 465,
|
var userInfo = {
|
||||||
auth: {
|
user_name : userName
|
||||||
user: "strawmanbobi@163.com",
|
};
|
||||||
pass: "Fs11233209."
|
requestSender.sendPostRequest(userInfo,
|
||||||
}
|
function(changePwRequestErr, changePwResponse) {
|
||||||
});
|
if (changePwRequestErr == errorCode.SUCCESS.code && null != changePwResponse) {
|
||||||
adminAuth.setAuthInfo(passwdKey, passwdMD5, ttl, function(setPasswordAuthErr) {
|
callback(errorCode.SUCCESS);
|
||||||
if (setPasswordAuthErr.code == errorCode.SUCCESS.code) {
|
} else {
|
||||||
logger.info("save temp password successfully, continue process email post");
|
callback(errorCode.FAILED);
|
||||||
// send email to notify user
|
}
|
||||||
smtpTransport.sendMail({
|
});
|
||||||
from : "strawmanbobi@163.com",
|
|
||||||
to : userEmail ,
|
|
||||||
subject: "分配新密码",
|
|
||||||
generateTextFromHTML : true,
|
|
||||||
html: "<html><body style='font-family: 微软雅黑; font-size: 14px;'>"+
|
|
||||||
"<p>Yo-- 这是 irext 数据中心为您随机分配的新密码,请牢记之后,点击它表示确认 <( ̄︶ ̄)></p>" +
|
|
||||||
"<a target='_blank' href='http://"+MAIN_SERVER_ADDRESS+":"+MAIN_SERVER_PORT+
|
|
||||||
"/irext/certificate/confirm_pw?id="+ admin.id +
|
|
||||||
"&key="+passwdKey+"&password="+newPw+"'><b>" + newPw + "</b></a></body></html>"
|
|
||||||
}, function(error, response) {
|
|
||||||
if(error) {
|
|
||||||
sendEmailErr = errorCode.FAILED;
|
|
||||||
logger.info("send change password email failed :" + error);
|
|
||||||
logger.info(sendEmailErr+" userLogic.....");
|
|
||||||
callback(sendEmailErr);
|
|
||||||
} else {
|
|
||||||
sendEmailErr = errorCode.SUCCESS;
|
|
||||||
logger.info("change password email send successfully : " + response.message);
|
|
||||||
logger.info(sendEmailErr+" userLogic.....");
|
|
||||||
callback(sendEmailErr);
|
|
||||||
}
|
|
||||||
smtpTransport.close();
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
logger.info("failed to save temp password");
|
|
||||||
callback(setPasswordAuthErr);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
logger.info("no admin info found");
|
|
||||||
callback(errorCode.FAILED);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
exports.confirmPasswordWorkUnit = function(id, fetchKey, callback) {
|
exports.confirmPasswordWorkUnit = function(id, fetchKey, callback) {
|
||||||
|
|||||||
@@ -35,11 +35,6 @@ var async = require('async');
|
|||||||
// relative XML file path
|
// relative XML file path
|
||||||
var PROTOCOL_PATH = "protocol";
|
var PROTOCOL_PATH = "protocol";
|
||||||
|
|
||||||
// out going HTTP request parameters
|
|
||||||
// var PRIMARY_SERVER_ADDRESS = "irext.net";
|
|
||||||
var PRIMARY_SERVER_ADDRESS = "127.0.0.1";
|
|
||||||
var PRIMARY_SERVER_PORT = "8200";
|
|
||||||
|
|
||||||
var REQUEST_APP_KEY = "d6119900556c4c1e629fd92d";
|
var REQUEST_APP_KEY = "d6119900556c4c1e629fd92d";
|
||||||
var REQUEST_APP_TOKEN = "fcac5496cba7a12b3bae34abf061f526";
|
var REQUEST_APP_TOKEN = "fcac5496cba7a12b3bae34abf061f526";
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user