|
@@ -203,6 +203,85 @@ class ZLLAuth1Frontend {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+ DoOtherEncryptedRequestWithAutoInitSecure(reqArgsData, url) {
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ if (this.cryptReady) {
|
|
|
+ this.DoOtherEncryptedRequest(reqArgsData, url)
|
|
|
+ .then((res) => {
|
|
|
+ resolve(res)
|
|
|
+ }, (err) => {
|
|
|
+ reject(err)
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ throw err
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ this.InitSecure()
|
|
|
+ .then(() => {
|
|
|
+ this.DoOtherEncryptedRequest(reqArgsData, url)
|
|
|
+ .then((res) => {
|
|
|
+ resolve(res)
|
|
|
+ }, (err) => {
|
|
|
+ reject(err)
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ throw err
|
|
|
+ })
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ throw err
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ DoOtherEncryptedRequest(reqArgsData, url) {
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ if (!this.cryptReady) {
|
|
|
+ throw new Error("zllauthv1 frontend secure module not init")
|
|
|
+ }
|
|
|
+ var jsonStr = JSON.stringify(reqArgsData)
|
|
|
+ var cm = 1;
|
|
|
+ if (this.encrypt_info.cipherMode === "C1C3C2") {
|
|
|
+ cm = 1;
|
|
|
+ } else {
|
|
|
+ cm = 0;
|
|
|
+ }
|
|
|
+ var ct = this.sm2.doEncrypt(jsonStr, this.encrypt_info.pubkey, cm)
|
|
|
+ var fullCt = this.encrypt_info.header + ct
|
|
|
+ var apiData = { login_data: fullCt }
|
|
|
+ this.axios.post(url, apiData)
|
|
|
+ .then((res) => {
|
|
|
+ if (res.data.suc) {
|
|
|
+ if(res.data.data){
|
|
|
+ resolve(res.data.data)
|
|
|
+ }else{
|
|
|
+ reject({
|
|
|
+ "ecode": "internal_error",
|
|
|
+ "emsg": {
|
|
|
+ "zh_CN": "内部错误(若您是专业人士,需要了解错误细节,详见浏览器脚本控制台)",
|
|
|
+ "en_US": "Internal error (if you want detail, please se browser's script console)"
|
|
|
+ },
|
|
|
+ "raw_response": res.data
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ reject({
|
|
|
+ "ecode": "internal_error",
|
|
|
+ "emsg": {
|
|
|
+ "zh_CN": "内部错误(若您是专业人士,需要了解错误细节,详见浏览器脚本控制台)",
|
|
|
+ "en_US": "Internal error (if you want detail, please se browser's script console)"
|
|
|
+ },
|
|
|
+ "raw_response": res.data
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch((err) => {
|
|
|
+ throw err
|
|
|
+ })
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
__wrapLoginError(eresp) {
|
|
|
switch (eresp.login_ecode) {
|
|
|
case "invalid_username_or_password": {
|