Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function login(destnation, callback, redirectDes, isGDPR) {
- var name = $.trim($('#username').val());
- var psd = $('#password').val();
- var valid = validateInput(name, psd);
- if(!valid) {
- return;
- }
- if (g_logining_flag == true) {
- return;
- }
- g_logining_flag = true;
- refreshToken();
- if (true == g_scarm_login) {
- if($.isArray(g_requestVerificationToken)) {
- if(g_requestVerificationToken.length <= 0) {
- setTimeout( function () {
- if(g_requestVerificationToken.length > 0) {
- login(destnation, callback, redirectDes);
- }
- }, 50)
- return;
- }
- }
- var scram = CryptoJS.SCRAM();
- var firstNonce = scram.nonce().toString();
- var firstPostData = {
- username: name,
- firstnonce: firstNonce,
- mode: RSA_LOGIN_MODE
- };
- var firstXml = object2xml('request', firstPostData);
- saveAjaxData('api/user/challenge_login', firstXml, function($xml) {
- var ret = xml2object($xml);
- if (ret.type == 'response') {
- var salt = CryptoJS.enc.Hex.parse(ret.response.salt);
- var iter = ret.response.iterations;
- var finalNonce = ret.response.servernonce;
- var authMsg = firstNonce + "," + finalNonce + "," + finalNonce;
- var saltPassword = scram.saltedPassword(psd,salt,iter).toString();
- var clientProof = scram.clientProof(psd, salt, iter, authMsg);
- var serverKey = scram.serverKey(CryptoJS.enc.Hex.parse(saltPassword)).toString();
- var finalPostData = {
- clientproof: clientProof,
- finalnonce: finalNonce
- };
- if (ret.response.newType && ret.response.newType == '1') {
- var newSalt = CryptoJS.enc.Hex.parse(ret.response.newSalt);
- var newIter = ret.response.newIterations;
- var newSaltPassword = scram.saltedPassword(psd,newSalt,newIter).toString();
- var newStoredKey = scram.storedKey(scram.clientKey(CryptoJS.enc.Hex.parse(newSaltPassword))).toString();
- var newServerKey = scram.serverKey(CryptoJS.enc.Hex.parse(newSaltPassword)).toString();
- var hashOldNewPwd = SHA256(newStoredKey + newServerKey + clientProof);
- finalPostData = {
- clientproof: clientProof,
- finalnonce: finalNonce,
- hashOldNewPwd: hashOldNewPwd,
- newStoredKey: newStoredKey,
- newServerKey: newServerKey
- }
- }
- var finalXml = object2xml('request', finalPostData);
- saveAjaxData('api/user/authentication_login', finalXml, function($xml) {
- ret = xml2object($xml);
- if (ret.type == 'response') {
- var serverProof = scram.serverProof(psd, salt, iter, authMsg);
- if (ret.response.serversignature == serverProof) {
- var publicKeySignature = scram.signature(CryptoJS.enc.Hex.parse(ret.response.rsan), CryptoJS.enc.Hex.parse(serverKey)).toString();
- if (ret.response.rsapubkeysignature == publicKeySignature) {
- g_encPublickey.e = ret.response.rsae;
- g_encPublickey.n = ret.response.rsan;
- storagePubkey(g_encPublickey.n,g_encPublickey.e);
- getAjaxData('api/user/state-login', function($xml) {
- var ret = xml2object($xml);
- if (ret.type == 'response') {
- if('undefined' != typeof(ret.response.firstlogin)) {
- g_default_password_status = parseInt(ret.response.firstlogin,10);
- }
- g_login_state = ret.response.State;
- $('#username_span').text(name);
- $('#username_span').show();
- $('#logout_span').text(common_logout);
- var passwordStr = $('#password').val();
- clearDialog();
- g_main_displayingPromptStack.pop();
- startLogoutTimer(redirectDes);
- if(checkPWRemind(passwordStr)) {
- checkDialogFlag = true;
- if(g_setup_wizard_page == '1' && g_Driver_classify != 'hilink' && g_auto_update_enable == '1'){
- if(isGDPR && current_href =='home'){
- loginSwitchDoing(destnation, callback);
- }else if(current_href =='quicksetup' || current_href =='home' || current_href =='update'){
- window.location.replace('quicksetup.html');
- }
- } else {
- showPWRemindDialog(destnation, callback);
- }
- } else {
- setTimeout( function() {
- if(g_setup_wizard_page == '1' && g_Driver_classify != 'hilink' && g_auto_update_enable == '1'){
- if(isGDPR && current_href =='home'){
- loginSwitchDoing(destnation, callback);
- }else if(current_href =='quicksetup' || current_href =='home' || current_href =='update'){
- window.location.replace('quicksetup.html');
- }
- }else{
- loginSwitchDoing(destnation, callback);
- }
- }, 200);
- }
- }
- });
- } else {
- showErrorUnderTextbox('username', IDS_login_fialed_prompt);
- $('#username').focus();
- $('#username').val('');
- $('#password').val('');
- }
- } else {
- showErrorUnderTextbox('username', IDS_login_fialed_prompt);
- $('#username').focus();
- $('#username').val('');
- $('#password').val('');
- }
- } else if (ret.error.code == ERROR_LOGIN_USERNAME_PWD_WRONG) {
- showErrorUnderTextbox('forget_password_tab', IDS_login_username_password_wrong);
- $('#username').focus();
- $('#username').val('');
- $('#password').val('');
- }
- });
- } else {
- if (ret.error.code == ERROR_LOGIN_USERNAME_PWD_ORERRUN) {
- showErrorUnderTextbox('forget_password_tab', IDS_login_username_password_input_overrun);
- $('#username').focus();
- $('#username').val('');
- $('#password').val('');
- } else if (ret.error.code == ERROR_LOGIN_TOUCH_ALREADY_LOGIN) {
- showErrorUnderTextbox('forget_password_tab', touch_user_login_repeat);
- $('#username').focus();
- $('#username').val('');
- $('#password').val('');
- } else if (ret.error.code == ERROR_LOGIN_USERNAME_PWD_WRONG) {
- showErrorUnderTextbox('forget_password_tab', IDS_login_username_password_wrong);
- $('#username').focus();
- $('#username').val('');
- $('#password').val('');
- } else if (ret.error.code == ERROR_LOGIN_ALREADY_LOGIN) {
- showErrorUnderTextbox('forget_password_tab', common_user_login_repeat);
- $('#username').focus();
- $('#username').val('');
- $('#password').val('');
- }
- }
- g_logining_flag = false;
- });
- } else {
- if($.isArray()) {
- if(g_requestVerificationToken.length > 0) {
- if(g_password_type == '4') {
- psd = base64encode(SHA256(name + base64encode(SHA256($('#password').val())) + g_requestVerificationToken[0]));
- } else {
- psd = base64encode($('#password').val());
- }
- } else {
- setTimeout( function () {
- if(g_requestVerificationToken.length > 0) {
- login(destnation, callback, redirectDes);
- }
- }, 50)
- return;
- }
- } else {
- psd = base64encode($('#password').val());
- }
- var request = {
- Username: name,
- Password: psd,
- password_type: g_password_type
- };
- if (valid) {
- var xmlstr = object2xml('request', request);
- log.debug('xmlstr = ' + xmlstr);
- saveAjaxData('api/user/login', xmlstr, function($xml) {
- log.debug('api/user/login successed!');
- var ret = xml2object($xml);
- g_logining_flag = false;
- if (isAjaxReturnOK(ret)) {
- /*
- * show username when login successfully
- */
- getAjaxData('api/user/state-login', function($xml) {
- var ret = xml2object($xml);
- if (ret.type == 'response') {
- if('undefined' != typeof(ret.response.firstlogin)) {
- g_default_password_status = parseInt(ret.response.firstlogin,10);
- }
- $('#username_span').text(name);
- $('#username_span').show();
- $('#logout_span').text(common_logout);
- var passwordStr = $('#password').val();
- clearDialog();
- g_main_displayingPromptStack.pop();
- startLogoutTimer(redirectDes);
- if(checkPWRemind(passwordStr)) {
- checkDialogFlag = true;
- if(g_setup_wizard_page == '1' && g_Driver_classify != 'hilink' && g_auto_update_enable == '1'){
- if(isGDPR && current_href =='home'){
- loginSwitchDoing(destnation, callback);
- }else if(current_href =='quicksetup' || current_href =='home' || current_href =='update'){
- window.location.replace('quicksetup.html');
- }
- } else {
- showPWRemindDialog(destnation, callback);
- }
- } else {
- setTimeout( function() {
- if(g_setup_wizard_page == '1' && g_Driver_classify != 'hilink' && g_auto_update_enable == '1'){
- if(isGDPR && current_href =='home'){
- loginSwitchDoing(destnation, callback);
- }else if(current_href =='quicksetup' || current_href =='home' || current_href =='update'){
- window.location.replace('quicksetup.html');
- }
- }else{
- loginSwitchDoing(destnation, callback);
- }
- }, 200);
- }
- }
- });
- } else {
- if (ret.type == 'error') {
- clearAllErrorLabel();
- if (ret.error.code == ERROR_LOGIN_PASSWORD_WRONG) {
- showErrorUnderTextbox('forget_password_tab', system_hint_wrong_password);
- $('#password').val('');
- $('#password').focus();
- } else if (ret.error.code == ERROR_LOGIN_ALREADY_LOGIN) {
- showErrorUnderTextbox('forget_password_tab', common_user_login_repeat);
- $('#username').focus();
- $('#username').val('');
- $('#password').val('');
- }else if (ret.error.code == ERROR_LOGIN_TOUCH_ALREADY_LOGIN) {
- showErrorUnderTextbox('forget_password_tab', touch_user_login_repeat);
- $('#username').focus();
- $('#username').val('');
- $('#password').val('');
- } else if (ret.error.code == ERROR_LOGIN_USERNAME_WRONG) {
- showErrorUnderTextbox('username', settings_hint_user_name_not_exist);
- $('#username').focus();
- $('#username').val('');
- $('#password').val('');
- } else if (ret.error.code == ERROR_LOGIN_USERNAME_PWD_WRONG) {
- showErrorUnderTextbox('forget_password_tab', IDS_login_username_password_wrong);
- $('#username').focus();
- $('#username').val('');
- $('#password').val('');
- } else if (ret.error.code == ERROR_LOGIN_USERNAME_PWD_ORERRUN) {
- showErrorUnderTextbox('forget_password_tab', IDS_login_username_password_input_overrun);
- $('#username').focus();
- $('#username').val('');
- $('#password').val('');
- }
- }
- }
- }, {
- enc:true
- });
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement