hmp 4 năm trước cách đây
mục cha
commit
8d8dda4bce
5 tập tin đã thay đổi với 52 bổ sung7 xóa
  1. 1 6
      assets/http/api.js
  2. 7 1
      assets/http/service.js
  3. 6 0
      package-lock.json
  4. 3 0
      package.json
  5. 35 0
      utils/crypto.js

+ 1 - 6
assets/http/api.js

@@ -1,11 +1,6 @@
 import {http} from './service.js'
 
 
-const header={
-	'Authorization': "Basic c2FiZXI6c2FiZXJfc2VjcmV0",
-	'Content-Type': 'application/x-www-form-urlencoded',
-}
-
 //文件上传
 const uploadFile =(p)=> http.upload('blade-resource/oss/endpoint/put-file', {name:'file',filePath:p})
 
@@ -15,7 +10,7 @@ const sms={
 }
 
 const system={
-	login:p => http.post('blade-auth/oauth/token',p,{header}),
+	login:p => http.post('blade-auth/oauth/token'+p,{},{header:{'Authorization': "Basic c2FiZXI6c2FiZXJfc2VjcmV0"}}),
 }
 
 

+ 7 - 1
assets/http/service.js

@@ -1,4 +1,5 @@
 import Request from 'luch-request'
+import crypto from '@/utils/crypto.js'
 
 let baseURL = 'https://ldt.guosen-fumao.cn/api/'
 // let baseURL = 'http://192.168.1.168:2366/'
@@ -44,6 +45,11 @@ http.interceptors.request.use((config) => {
 		Authorization: "Basic c2FiZXI6c2FiZXJfc2VjcmV0",
 		"Blade-Auth": getTokenStorage()
 	}
+	if (config.method == 'POST' && config.data) {
+		//报文加密
+		let encrypt= crypto.encrypt(JSON.stringify(config.data))
+		config.data=encrypt
+	}
 	return config
 }, (config) => {
 	return Promise.reject(config)
@@ -85,7 +91,7 @@ http.interceptors.response.use(async (response) => {
 					'scope': "all",
 				}
 			})
-			if (res.data && res.data.error_description=="用户名或密码不正确") {
+			if ( !res.data ||  (res.data && res.data.error_description=="用户名或密码不正确")) {
 				uni.clearStorage()
 				uni.reLaunch({
 					url:"/pages/login/account-login"

+ 6 - 0
package-lock.json

@@ -9,6 +9,12 @@
       "resolved": "https://registry.nlark.com/@dcloudio/types/download/@dcloudio/types-2.3.3.tgz?cache=0&sync_timestamp=1626160250541&other_urls=https%3A%2F%2Fregistry.nlark.com%2F%40dcloudio%2Ftypes%2Fdownload%2F%40dcloudio%2Ftypes-2.3.3.tgz",
       "integrity": "sha1-DkDCovGSXVbbKXw0xSjqjIz7tOc="
     },
+    "crypto-js": {
+      "version": "4.1.1",
+      "resolved": "https://registry.nlark.com/crypto-js/download/crypto-js-4.1.1.tgz?cache=0&sync_timestamp=1626954954639&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fcrypto-js%2Fdownload%2Fcrypto-js-4.1.1.tgz",
+      "integrity": "sha1-nkhbzwNSEEG9hYRHhrg/t2GXNs8=",
+      "dev": true
+    },
     "luch-request": {
       "version": "3.0.6",
       "resolved": "https://registry.nlark.com/luch-request/download/luch-request-3.0.6.tgz",

+ 3 - 0
package.json

@@ -12,5 +12,8 @@
   "dependencies": {
     "luch-request": "^3.0.6",
     "uview-ui": "^1.8.4"
+  },
+  "devDependencies": {
+    "crypto-js": "^4.1.1"
   }
 }

+ 35 - 0
utils/crypto.js

@@ -0,0 +1,35 @@
+var CryptoJS = require("crypto-js");
+console.log(CryptoJS.HmacSHA1("Message", "Key"));
+
+let crypto = {}
+
+//前后端定义的密钥,AES使用16位
+const CRYPTOJS_KEY = "uAY9ugkHQpvozZeA";
+// 加密
+crypto.encrypt = (plaintText) => {
+	var plaintText = plaintText;
+	var options = {
+		mode: CryptoJS.mode.ECB,
+		padding: CryptoJS.pad.Pkcs7
+	};
+	var key = CryptoJS.enc.Utf8.parse(CRYPTOJS_KEY);
+	var encryptedData = CryptoJS.AES.encrypt(plaintText, key, options);
+	var encryptedBase64Str = encryptedData.toString().replace(/\//g, "_");
+	encryptedBase64Str = encryptedBase64Str.replace(/\+/g, "-");
+	return encryptedBase64Str;
+}
+
+//解密
+crypto.decrypt = (encryptedBase64Str) => {
+	var vals = encryptedBase64Str.replace(/\-/g, '+').replace(/_/g, '/');
+	var options = {
+		mode: CryptoJS.mode.ECB,
+		padding: CryptoJS.pad.Pkcs7
+	};
+	var key = CryptoJS.enc.Utf8.parse(CRYPTOJS_KEY);
+	var decryptedData = CryptoJS.AES.decrypt(vals, key, options);
+	var decryptedStr = CryptoJS.enc.Utf8.stringify(decryptedData);
+	return decryptedStr
+}
+
+export default crypto