瀏覽代碼

登录加密和登录验证码

seimin 1 年之前
父節點
當前提交
6db224fa46
共有 4 個文件被更改,包括 55 次插入1 次删除
  1. 10 0
      css/login.css
  2. 39 1
      js/login.js
  3. 1 0
      libs/crypto-js.min.js
  4. 5 0
      login.html

+ 10 - 0
css/login.css

@@ -50,6 +50,16 @@
50
     padding: 38px 40px;
50
     padding: 38px 40px;
51
 }
51
 }
52
 
52
 
53
+.login .captcha{
54
+  width: 50%;
55
+}
56
+
57
+.login .verificationCodeImg {
58
+  width: 50%;
59
+  margin-top: 18px;
60
+  height: 56px;
61
+}
62
+
53
 .login .title {
63
 .login .title {
54
     color: #68686b;
64
     color: #68686b;
55
     font-size: 24px;
65
     font-size: 24px;

+ 39 - 1
js/login.js

@@ -7,6 +7,23 @@ $(function () {
7
   var hasClick = false; //是否已经点击过登录按钮
7
   var hasClick = false; //是否已经点击过登录按钮
8
   // 兼容ie的placeholder
8
   // 兼容ie的placeholder
9
   $('input, textarea').placeholder();
9
   $('input, textarea').placeholder();
10
+  // 获取验证码
11
+  function getVerificationCodeImg(){
12
+    $('#verificationCodeImg').attr('src', baseUrl + "auth/getCaptcha?" + Date.now());
13
+  }
14
+  getVerificationCodeImg();
15
+  // 点击刷新验证码
16
+  $("#verificationCodeImg").on('click', getVerificationCodeImg);
17
+  //aes加密
18
+  function encryptByEnAESLogin(data) {
19
+    data = CryptoJS.enc.Utf8.parse(data);
20
+    let Key = CryptoJS.enc.Utf8.parse('Aes2Util666AQWER');
21
+    let tmpAES = CryptoJS.AES.encrypt(data, Key, {
22
+      mode: CryptoJS.mode.ECB,
23
+      padding: CryptoJS.pad.Pkcs7,
24
+    });
25
+    return tmpAES.toString();
26
+  }
10
   // 登录点击
27
   // 登录点击
11
   $('#login').on('click', login);
28
   $('#login').on('click', login);
12
   // 登录方法
29
   // 登录方法
@@ -15,9 +32,11 @@ $(function () {
15
     hasClick = true;
32
     hasClick = true;
16
     var name = $('#name').val()
33
     var name = $('#name').val()
17
     var pwd = $('#pwd').val()
34
     var pwd = $('#pwd').val()
35
+    var captcha = $('#captcha').val()
18
     var data = {
36
     var data = {
19
       username: name,
37
       username: name,
20
-      password: pwd
38
+      password: pwd,
39
+      captcha: captcha
21
     }
40
     }
22
     // 单点登录 start
41
     // 单点登录 start
23
     var ssoStr = '';
42
     var ssoStr = '';
@@ -26,8 +45,23 @@ $(function () {
26
       ssoStr = location.search.replace('?', '').split('&')[0].split('=')[1];
45
       ssoStr = location.search.replace('?', '').split('&')[0].split('=')[1];
27
       ssoStr = Base64.decode(decodeURIComponent(ssoStr));
46
       ssoStr = Base64.decode(decodeURIComponent(ssoStr));
28
       ssoJson = JSON.parse(ssoStr);
47
       ssoJson = JSON.parse(ssoStr);
48
+    }else if(!name || !name.trim()){
49
+      alert("请输入用户名");
50
+      hasClick = false;
51
+      return;
52
+    }else if(!pwd || !pwd.trim()){
53
+      alert("请输入密码");
54
+      hasClick = false;
55
+      return;
56
+    }else if(!captcha || !captcha.trim()){
57
+      alert("请输入验证码");
58
+      hasClick = false;
59
+      return;
29
     }
60
     }
30
     var postData = isSSo ? { username: ssoJson.a, password: ssoJson.r, t: false } : data;
61
     var postData = isSSo ? { username: ssoJson.a, password: ssoJson.r, t: false } : data;
62
+    postData = {
63
+        k: encryptByEnAESLogin(JSON.stringify(postData))
64
+    };
31
     // 单点登录 end
65
     // 单点登录 end
32
     $.ajax({
66
     $.ajax({
33
       type: "POST",
67
       type: "POST",
@@ -84,6 +118,10 @@ $(function () {
84
               console.log(e.responseText);
118
               console.log(e.responseText);
85
             }
119
             }
86
           });
120
           });
121
+        } else if(res.state == 403){
122
+          alert('验证码错误');
123
+          hasClick = false;
124
+          getVerificationCodeImg();
87
         } else {
125
         } else {
88
           alert('用户名或密码错误,请重试!');
126
           alert('用户名或密码错误,请重试!');
89
           hasClick = false;
127
           hasClick = false;

文件差異過大導致無法顯示
+ 1 - 0
libs/crypto-js.min.js


+ 5 - 0
login.html

@@ -12,6 +12,7 @@
12
     <script src="./libs/jquery-1.9.1.min.js"></script>
12
     <script src="./libs/jquery-1.9.1.min.js"></script>
13
     <script src="./libs/jquery.placeholder.js"></script>
13
     <script src="./libs/jquery.placeholder.js"></script>
14
     <script src="./libs/base64.min.js"></script>
14
     <script src="./libs/base64.min.js"></script>
15
+    <script src="./libs/crypto-js.min.js"></script>
15
     <!--[if lt IE 10]>
16
     <!--[if lt IE 10]>
16
         <script src="./libs/html5shiv.js"></script>
17
         <script src="./libs/html5shiv.js"></script>
17
     <![endif]-->
18
     <![endif]-->
@@ -28,6 +29,10 @@
28
                 <div class="title">用户登录</div>
29
                 <div class="title">用户登录</div>
29
                 <input id="name" type="text" placeholder="请输入用户名">
30
                 <input id="name" type="text" placeholder="请输入用户名">
30
                 <input id="pwd" type="password" placeholder="请输入密码">
31
                 <input id="pwd" type="password" placeholder="请输入密码">
32
+                <div class="clearfix">
33
+                  <input class="captcha fl" id="captcha" type="text" placeholder="请输入验证码">
34
+                  <img class="verificationCodeImg fl" id="verificationCodeImg">
35
+                </div>
31
                 <button id="login">登录</button>
36
                 <button id="login">登录</button>
32
                 <p>推荐使用Google浏览器,其他浏览器可能出现兼容性问题</p>
37
                 <p>推荐使用Google浏览器,其他浏览器可能出现兼容性问题</p>
33
                 <!-- <p class="login_reset" style="color: #005395;">账号为您的学工号,初始密码为您的学工号后4位</p> -->
38
                 <!-- <p class="login_reset" style="color: #005395;">账号为您的学工号,初始密码为您的学工号后4位</p> -->