1.4.9 • Published 2 years ago

@alicloud/console-fetcher-interceptor-req-security v1.4.9

Weekly downloads
146
License
MIT
Repository
github
Last release
2 years ago

@alicloud/console-fetcher-interceptor-req-security

在类 POST 请求的 body 中自动添加 collinasec_tokenumid 参数

  • 发送请求前,在 body 中塞入额外的安全信息 collina + umid + sec_token
  • 扩展 FetcherConfig 增加 getCollina(): string + getUmid(): string + getSecToken(): string 三个可选方法

阿里云控制台的 API POST 类的请求 body 因安全要求,必须有以下参数:

参数名作用来源
collina人机识别通过 window[window.UA_Opt.LogVal] 获取,window.UA_Opt 来自 uab.jsuab.js 是 t-engine 自动注入的
umid风控需要通过 window.um.getToken() 获取,window.um 来自 um.jsum.js 由应用主动写到页面
sec_token判断登录有效性应用写到 HTML 的一个常量,OneConsole 有固定的方案,非 OneConsole 需要自行指定

@alicloud/fetcherFetcherConfig 的扩展

可以在 config 对象上传入新增参数:

interface FetcherConfigExtra {
  getCollina?(): string;
  getUmid?(): string;
  getSecToken?(): string;
}

INSTALL

tnpm i @alicloud/console-fetcher-interceptor-req-security -S

Usage

import createFetcher, {
  Fetcher
} from '@alicloud/fetcher';
// import interceptors 1
import intercept, {
  FetcherConfigExtended
} from '@alicloud/console-fetcher-interceptor-req-security';
// import interceptors 2

const fetcher: Fetcher<FetcherConfigExtended> = createFetcher<FetcherConfigExtended>({
  getCollina, // 一般不需要自己传,这里已经做好了
  getUmid, // 一般不需要自己传,这里已经做好了
  getSecToken // 非 OneConsole 可能需要传
});

// ... add interceptors 1  
intercept(fetcher);
// ... add interceptors 2

export default fetcher;

如何覆盖默认

注意:

  1. 不建议覆盖 ￿getCollina,因为这里的实现可以说是通用的
  2. 不建议覆盖 getUmid,因为这里的实现可以说是通用的
  3. 非 OneConsole 的话,才有可能需要 getSecToken

方法 1 - 创建实例时传入默认值

假设 : 是你项目下 src 的 alias。

创建自己的 Fetcher 实例,传入默认值:

// src/util/fetcher.ts
import createFetcher, {
  Fetcher
} from '@alicloud/fetcher';
// import interceptors 1
import intercept, {
  FetcherConfigExtended
} from '@alicloud/console-fetcher-interceptor-req-security';
// import interceptors 2

// import getCollina from ':/util/get-collina';
// import getUmid from ':/util/get-umid';
import getSecToken from ':/util/get-sec-token';

const fetcher: Fetcher<FetcherConfigExtended> = createFetcher<FetcherConfigExtended>({
  // getCollina,
  // getUmid,
  getSecToken
});

// ... add interceptors 1  
intercept(fetcher);
// ... add interceptors 2

export default fetcher;

方法 2 - 调用的时候传入覆盖

import fetcher from ':/util/fetcher'; // 假设这是你项目下的 fetcher 文件路径
// import getCollina from ':/util/get-collina';
// import getUmid from ':/util/get-umid';
import getSecToken from ':/util/get-sec-token';

interface IResult {
  id: string;
  name: string;
}

interface IBody {
  id: string;
}

fetcher.request<IResult>({
  url: '____url____',
  // getCollina,
  // getUmid,
  getSecToken
});

fetcher.post<IResult, IBody>({
  // getCollina,
  // getUmid,
  getSecToken
}, '____url____', {
  id: '____id____'
});
1.4.9

2 years ago

1.4.8

2 years ago

1.4.7

3 years ago

1.4.6

3 years ago

1.4.4

3 years ago

1.4.2

3 years ago

1.4.0

3 years ago

1.3.3

3 years ago

1.3.2

3 years ago

1.3.1

3 years ago

1.2.0

3 years ago

1.2.1

3 years ago

1.1.85-alpha.1

3 years ago

1.1.85-alpha.0

3 years ago

1.1.84

3 years ago

1.3.0

3 years ago

1.3.0-alpha.0

3 years ago

1.2.0-alpha.1

3 years ago

1.2.0-alpha.0

3 years ago

1.1.82-alpha.4

3 years ago

1.1.82-alpha.3

4 years ago

1.1.82-alpha.2

4 years ago

1.1.78

4 years ago

1.1.81

4 years ago

1.1.80

4 years ago

1.1.83

4 years ago

1.1.82

4 years ago

1.1.62

4 years ago

1.1.61

4 years ago

1.1.60

4 years ago

1.1.59

4 years ago

1.1.58

4 years ago

1.1.53-alpha.4

4 years ago

1.1.56

4 years ago

1.1.55

4 years ago

1.1.54

4 years ago

1.1.53-alpha.3

4 years ago

1.1.52

4 years ago

1.1.49

4 years ago

1.1.48

4 years ago

1.1.51

4 years ago

1.1.47

4 years ago

1.1.46

4 years ago

1.1.45

4 years ago

1.1.41

4 years ago

1.1.43

4 years ago

1.1.42

4 years ago

1.1.39

4 years ago

1.1.40

4 years ago

1.1.34

4 years ago

1.1.31

4 years ago

1.1.38

4 years ago

1.1.36

4 years ago

1.1.35

4 years ago

1.1.30

4 years ago

1.1.29

4 years ago

1.1.28

4 years ago

1.1.27

4 years ago

1.1.26

4 years ago

1.1.25

4 years ago

1.1.22

4 years ago

1.1.24

4 years ago

1.1.19

4 years ago

1.1.18

4 years ago

1.1.17

4 years ago

1.1.16

4 years ago

1.1.15

4 years ago

1.1.14

4 years ago

1.1.13

4 years ago

1.1.12

4 years ago

1.1.11

4 years ago

1.1.9

4 years ago

1.1.10

4 years ago

1.1.8

4 years ago

1.1.7

4 years ago

1.1.6

4 years ago

1.1.5

4 years ago

1.1.4

4 years ago

1.1.3

4 years ago

1.1.2

4 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.0.60

4 years ago

1.0.59

4 years ago

1.0.58

4 years ago

1.0.57

4 years ago

1.0.56

4 years ago

1.0.55

4 years ago

1.0.54

4 years ago

1.0.53

4 years ago

1.0.52

4 years ago

1.0.50

4 years ago

1.0.48

4 years ago

1.0.47

4 years ago

1.0.45

4 years ago

1.0.43

4 years ago

1.0.42

4 years ago

1.0.41

4 years ago

1.0.40

4 years ago

1.0.39

4 years ago

1.0.33

4 years ago

1.0.32

4 years ago

1.0.29

4 years ago

1.0.30

4 years ago

1.0.28

4 years ago

1.0.26

4 years ago

1.0.25

4 years ago

1.0.24

4 years ago

1.0.23

4 years ago

1.0.22

4 years ago

1.0.21

4 years ago

1.0.20

4 years ago

1.0.18

4 years ago

1.0.17

4 years ago

1.0.15

5 years ago

1.0.14

5 years ago

1.0.13

5 years ago

1.0.12

5 years ago

1.0.11

5 years ago

1.0.10

5 years ago

1.0.8

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago

0.0.2

5 years ago