require(['config'], function() { require([ 'jquery', 'crypto' //Crypto 암호화 js - 필요한 페이지만 불러서 쓴다 ], function($) { if (sessionStorage.getItem('itp_login_info') !== null) { //Jwt 가 살아있으면 메인으로 보낸다. location.replace('./main.html'); } // itp_fn_login_init(); $('#ITP_LOGIN').on('keyup', 'input, textarea', function() { var $th = $(this); $th.val($th.val().replace(/(<([^>]+)>)/ig, function() {return '';})); }); $('#ITP_BTN_LOGIN_BSNS_REG_NO').on('click', function() { itp_fn_login_reg_no(); }); $('#login_btn').click(function() { if(itp_fn_login_validate()) { itp_fn_login_proc(); } }); }); }); function itp_fn_login_init() { $('#ITP_FORM_LOGIN_SAVE_ID').prop('checked', true); var save_id = localStorage.getItem('ITP_USER_ID'); if (save_id !== null) { $('#ITP_FORM_LOGIN_USER_ID').val(save_id); } } function itp_fn_login_reg_no() { if ($('#ITP_FORM_LOGIN_BSNS_REG_NO').val() === '') { $('#ITP_FORM_LOGIN_ERROR_REG_NO').show(); } else { $('#ITP_FORM_LOGIN_ERROR_REG_NO').hide(); var callbackFn = function(result) { fn_make_select_brand(result.gridRows, 'ITP_FORM_LOGIN_BRAND_ID'); }; var param = {'bsnsRegNo': $('#ITP_FORM_LOGIN_BSNS_REG_NO').val()}; fn_ajax_call('/api/member/brand-list-app', $.param(param), callbackFn, 'GET'); } } function itp_fn_login_validate() { $('#ITP_FORM_LOGIN_BRAND_ID').closest('.form-group').removeClass('has-error'); $('#ITP_FORM_LOGIN_USER_ID').closest('.form-group').removeClass('has-error'); $('#ITP_FORM_LOGIN_USER_PW').closest('.form-group').removeClass('has-error'); $('#ITP_FORM_LOGIN_ERROR').text(ITP_MSG_LOCALE.message.login.help); if ($('#ITP_FORM_LOGIN_BRAND_ID').val() === '') { $('#ITP_FORM_LOGIN_BRAND_ID').closest('.form-group').addClass('has-error'); $('#ITP_FORM_LOGIN_ERROR').text(ITP_MSG_LOCALE.message.login.needId); return false; } if ($('#ITP_FORM_LOGIN_USER_ID').val() === '') { $('#ITP_FORM_LOGIN_USER_ID').closest('.form-group').addClass('has-error'); $('#ITP_FORM_LOGIN_ERROR').text(ITP_MSG_LOCALE.message.login.needId); return false; } if ($('#ITP_FORM_LOGIN_USER_PW').val() === '') { $('#ITP_FORM_LOGIN_USER_PW').closest('.form-group').addClass('has-error'); $('#ITP_FORM_LOGIN_ERROR').text(ITP_MSG_LOCALE.message.login.needPw); return false; } $('#ITP_FORM_LOGIN_ERROR').text(''); const userId = $('#ITP_FORM_LOGIN_USER_ID').val(); if ($('#ITP_FORM_LOGIN_SAVE_ID').prop('checked')) { localStorage.setItem('ITP_USER_ID', userId); } else { localStorage.removeItem('ITP_USER_ID'); } return true; } function itp_fn_login_proc() { var callbackFn = function(result) { var hashed = fnHashed(result.hashed); $('#userId').val(CryptoJS.AES.encrypt($('#ITP_FORM_LOGIN_USER_ID').val(), hashed)); $('#password').val(CryptoJS.AES.encrypt($('#ITP_FORM_LOGIN_USER_PW').val(), hashed)); var loginFn = function(result) { sessionStorage.setItem('itp_login_info', JSON.stringify({ timestamp: new Date(), connKey: result.connKey // Jwt키를 가져와서 세션 스토리지에 저장 })); $(location).attr('href', MOBILE_CONTEXTPATH + '/app/main.html'); }; var params = $('#ITP_FORM_MOBILE_LOGIN').serializeObject(); // console.log(JSON.stringify(params)); fn_ajax_call('/api/member/sign-in', JSON.stringify(params), loginFn, 'POST'); //암호화 해서 보내는 경우 먼저 해시키를 가져와서 암호화해서 보낸다 }; fn_ajax_call('/api/session/hashed', null, callbackFn, 'GET'); //Crypto 암호화를 위한 해쉬키.. 로그인 후에는 Jwt 포함인 /api/session/hashedKey 이걸로 호출해서 사용한다. }