12345678910111213141516171819202122232425262728293031323334353637 |
- import { createDecryptIframe } from './decrypt-iframe'
- let cacheIframe = null
- export default function registerDecryptInterceptor (service) {
- // 注册响应拦截器
- service.interceptors.response.use(async (response) => {
- const res = response.data
- const headers = response.headers
- // 如果请求不是200,有可能是403(被拉黑了),就直接跳过本次拦截
- if (response.status !== 200) {
- return response
- }
- // 需要验证
- const needDecrypt1 = res.antiEncrypt && res.data
- const needDecrypt2 = headers.antiEncrypt && res.data
- if (needDecrypt1 || needDecrypt2) {
- // 等待解密iframe加载完成
- const iframe = createDecryptIframe()
- cacheIframe = iframe
- const base64Key = res.secretKey
- const cipherText = res.data
- const result = await iframe.doDecrypt(base64Key, cipherText)
- if (result && result.plainText) {
- const p = JSON.parse(result.plainText)
- console.log('解密后的内容: -------->', p)
- response.data = p
- }
- return response
- } else {
- return response
- }
- }, error => {
- return error
- })
- }
|