Browse Source

fix: dahua 401

Jiang, Wim 3 năm trước cách đây
mục cha
commit
297bede689
3 tập tin đã thay đổi với 49 bổ sung53 xóa
  1. 44 44
      src/api/dahua.ts
  2. 3 6
      src/store/useDaHuaStore.ts
  3. 2 3
      src/utils/request.ts

+ 44 - 44
src/api/dahua.ts

@@ -71,105 +71,105 @@ export const DAHUALogin = (params: DAHUALoginParams) =>
   request<LoginResponse>('POST', {
     url: `${DA_HUA_URL_PREFIX}/videoService/accounts/authorize`,
     data: params,
-    // headers: {
-    //   'Content-Type': 'application/json',
-    //   'X-Subject-Token': '',
-    // },
+    headers: {
+      'Content-Type': 'application/json',
+      'X-Subject-Token': '',
+    },
   });
 
 export const DAHUAKeepAlive = (params: DAHUAKeepParams) =>
   request<KeepAliveResponse>('PUT', {
     url: `${DA_HUA_URL_PREFIX}/videoService/accounts/token/keepalive`,
     data: params,
-    // headers: {
-    //   'Content-Type': 'application/json',
-    //   'X-Subject-Token': params.token,
-    // },
+    headers: {
+      'Content-Type': 'application/json',
+      'X-Subject-Token': params.token,
+    },
   });
 
 export const DAHUAUserInfo = (params: DAHUAKeepParams) =>
   request<BaseResponse>('GET', {
     url: `${DA_HUA_URL_PREFIX}/ras/user/info`,
     params: params,
-    // headers: {
-    //   'Content-Type': 'application/json;charset=UTF-8',
-    //   'X-Subject-Token': params.token,
-    // },
+    headers: {
+      'Content-Type': 'application/json;charset=UTF-8',
+      'X-Subject-Token': params.token,
+    },
   });
 
 export const DAHUAInfomation = (params: DAHUAInfomationParams) =>
   request<BaseResponse>('POST', {
     url: `${DA_HUA_URL_PREFIX}/ras/acd/user/list`,
     data: params,
-    // headers: {
-    //   'Content-Type': 'application/json;charset=UTF-8',
-    //   'X-Subject-Token': params.token,
-    // },
+    headers: {
+      'Content-Type': 'application/json;charset=UTF-8',
+      'X-Subject-Token': params.token,
+    },
   });
 
 export const DAHUACreateMeet = (params: DAHUAMeetParams) =>
   request<KeepMeetResponse>('POST', {
     url: `${DA_HUA_URL_PREFIX}/mcu/meeting`,
     data: params,
-    // headers: {
-    //   'Content-Type': 'application/json',
-    //   'X-Subject-Token': params.token,
-    // },
+    headers: {
+      'Content-Type': 'application/json',
+      'X-Subject-Token': params.token,
+    },
   });
 
 export const DAHUADeleteMeet = (params: DAHUAMeetDeleteParams) =>
   request<KeepMeetResponse>('DELETE', {
     url: `${DA_HUA_URL_PREFIX}/mcu/meeting/` + params.meetId,
-    // headers: {
-    //   'Content-Type': 'application/json',
-    //   'X-Subject-Token': params.token,
-    // },
+    headers: {
+      'Content-Type': 'application/json',
+      'X-Subject-Token': params.token,
+    },
   });
 
 export const DAHUAMeetingUser = (params: DAHUAMeetDeleteParams) =>
   request<KeepMeetResponse>('GET', {
     url: `${DA_HUA_URL_PREFIX}/mcu/meeting/` + params.meetId,
-    // headers: {
-    //   'Content-Type': 'application/json',
-    //   'X-Subject-Token': params.token,
-    // },
+    headers: {
+      'Content-Type': 'application/json',
+      'X-Subject-Token': params.token,
+    },
   });
 
 export const DAHUADevice = (params: DAHUADeviceParams) =>
   request<BaseResponse>('GET', {
     url: `${DA_HUA_URL_PREFIX}/videoService/devicesManager/deviceTree`,
     params: params,
-    // headers: {
-    //   'Content-Type': 'application/json',
-    //   'X-Subject-Token': params.token,
-    // },
+    headers: {
+      'Content-Type': 'application/json',
+      'X-Subject-Token': params.token,
+    },
   });
 
 export const DAHUAMeetingMember = (params: DAHUAMemberParams) =>
   request<BaseResponse>('POST', {
     url: `${DA_HUA_URL_PREFIX}/mcu/meeting/member`,
     data: params.obj,
-    // headers: {
-    //   'Content-Type': 'application/json',
-    //   'X-Subject-Token': params.token,
-    // },
+    headers: {
+      'Content-Type': 'application/json',
+      'X-Subject-Token': params.token,
+    },
   });
 
 export const DAHUADeviceObj = (params: DAHUADeviceParams) =>
   request<BaseResponse>('GET', {
     url:
       `${DA_HUA_URL_PREFIX}/videoService/devicesManager/devices/` + params.id,
-    // headers: {
-    //   'Content-Type': 'application/json',
-    //   'X-Subject-Token': params.token,
-    // },
+    headers: {
+      'Content-Type': 'application/json',
+      'X-Subject-Token': params.token,
+    },
   });
 
 export const DAHUAUserObj = (params: DAHUADeviceParams) =>
   request<BaseResponse>('GET', {
     url: `${DA_HUA_URL_PREFIX}/ras/user/` + params.id,
-    // headers: {
-    //   'Content-Type': 'application/json',
-    //   'X-Subject-Token': params.token,
-    // },
+    headers: {
+      'Content-Type': 'application/json',
+      'X-Subject-Token': params.token,
+    },
   });

+ 3 - 6
src/store/useDaHuaStore.ts

@@ -19,9 +19,7 @@ import isString from 'lodash/isString';
 import { parseStr } from '@/utils';
 import md5 from 'crypto-js/md5';
 import { DA_HUA, DA_HUA_URL_PREFIX } from '@/constants/constants';
-import hex from 'crypto-js/format-hex';
 import { ElMessage } from 'element-plus';
-import request from '@/utils/request';
 
 export interface DaHuaStateType {
   dhuser: object;
@@ -55,9 +53,7 @@ export default defineStore<'daHua', DaHuaStateType, {}, DaHuaActionsType>(
       async DAHUALogin() {
         try {
           const { password, username } = DA_HUA;
-          request('GET', {
-            url: 'http://api.xt.wenhq.top:8083/mock/49/getUser?noauth=401',
-          });
+
           const firstLoginRes = await fetch(
             `${DA_HUA_URL_PREFIX}/videoService/accounts/authorize`,
             {
@@ -102,6 +98,7 @@ export default defineStore<'daHua', DaHuaStateType, {}, DaHuaActionsType>(
             'DAHUA_userId',
             JSON.stringify(next.userId || ''),
           );
+          this.timer && clearInterval(this.timer);
           this.KEEPAlive();
         } catch (err) {
           ElMessage.error({
@@ -111,7 +108,7 @@ export default defineStore<'daHua', DaHuaStateType, {}, DaHuaActionsType>(
       },
       async KEEPAlive() {
         const that = this;
-        this.timer = setTimeout(() => {
+        this.timer = setInterval(() => {
           DAHUAKeepAlive({
             token: that.dhToken,
           });

+ 2 - 3
src/utils/request.ts

@@ -76,6 +76,8 @@ axios.interceptors.response.use(
     if (status === 401 && url?.includes(DA_HUA_URL_PREFIX)) {
       clearTimeout(timer);
       const dahuaStore = useDaHuaStore();
+      dahuaStore.timer && clearInterval(dahuaStore.timer);
+
       timer = setTimeout(() => {
         dahuaStore.DAHUALogin();
       }, 1000);
@@ -97,9 +99,6 @@ export default function request<T>(
       'Content-Type': 'application/json',
       Authorization:
         'Bearer ' + window.localStorage.getItem('Authorization') ?? '',
-      ...{
-        'X-Subject-Token': window.localStorage.getItem('DAHUA_token') ?? '',
-      },
       ...confifg.headers,
     },
   });