From d18d44fa5c1c54d01aaa027aa2be54cb1fd3324d Mon Sep 17 00:00:00 2001
From: wangrong <wangrong@shsening.com>
Date: 星期四, 16 十二月 2021 20:52:51 +0800
Subject: [PATCH] 增加jwt校验

---
 js/index.js |   29 +++++++++++++++++++++++++++++
 1 files changed, 29 insertions(+), 0 deletions(-)

diff --git a/js/index.js b/js/index.js
index 1b60270..be3e7a7 100644
--- a/js/index.js
+++ b/js/index.js
@@ -18,6 +18,35 @@
     request = $.extend(request, haoutil.system.getRequest(window.top));
   }
 
+  var jwtstr = request.JWT;
+  var strs_ = jwtstr.split('.');
+  var jwt_header_ = new buffer.Buffer(strs_[0].toString('base64'), 'base64').toString();
+  var jwt_payload_ = new buffer.Buffer(strs_[1].toString('base64'), 'base64').toString();
+  debugger;
+  try {
+    var hash = CryptoJS.HmacSHA256(strs_[0] + '.' + strs_[1], "sxyd");
+    var hashInBase64 = CryptoJS.enc.Base64.stringify(hash);
+    var reg = RegExp(strs_[2]);
+    if (!reg.exec(hashInBase64)) {
+      // verification failed, go back
+      window.top.location = mars3d.global_variables.un_authorization_url;
+    }
+    payload_ = JSON.parse(jwt_payload_);
+    if (!payload_ || !payload_.expires) {
+      // verification error ,go back 
+      window.top.location = mars3d.global_variables.un_authorization_url;
+    }
+    var date1 = new Date(payload_.expires);
+    var date2 = new Date();
+    if (date1 < date2) {
+      // expire, go back
+      window.top.location = mars3d.global_variables.un_authorization_url;
+    }
+  }
+  catch (err) {
+    window.top.location = mars3d.global_variables.un_authorization_url;
+  }
+
   mars3d.global_variables.userid = request?.userid || 2;
 
   var configfile = "config/config.json"; //榛樿鍦板潃

--
Gitblit v1.9.1