1.4.9 • Published 1 year ago

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

Weekly downloads
146
License
MIT
Repository
github
Last release
1 year 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

1 year ago

1.4.8

1 year ago

1.4.7

1 year ago

1.4.6

2 years ago

1.4.4

2 years ago

1.4.2

2 years ago

1.4.0

2 years ago

1.3.3

2 years ago

1.3.2

2 years ago

1.3.1

2 years ago

1.2.0

2 years ago

1.2.1

2 years ago

1.1.85-alpha.1

2 years ago

1.1.85-alpha.0

2 years ago

1.1.84

2 years ago

1.3.0

2 years ago

1.3.0-alpha.0

2 years ago

1.2.0-alpha.1

2 years ago

1.2.0-alpha.0

2 years ago

1.1.82-alpha.4

2 years ago

1.1.82-alpha.3

2 years ago

1.1.82-alpha.2

3 years ago

1.1.78

3 years ago

1.1.81

3 years ago

1.1.80

3 years ago

1.1.83

3 years ago

1.1.82

3 years ago

1.1.62

3 years ago

1.1.61

3 years ago

1.1.60

3 years ago

1.1.59

3 years ago

1.1.58

3 years ago

1.1.53-alpha.4

3 years ago

1.1.56

3 years ago

1.1.55

3 years ago

1.1.54

3 years ago

1.1.53-alpha.3

3 years ago

1.1.52

3 years ago

1.1.49

3 years ago

1.1.48

3 years ago

1.1.51

3 years ago

1.1.47

3 years ago

1.1.46

3 years ago

1.1.45

3 years ago

1.1.41

3 years ago

1.1.43

3 years ago

1.1.42

3 years ago

1.1.39

3 years ago

1.1.40

3 years ago

1.1.34

3 years ago

1.1.31

3 years ago

1.1.38

3 years ago

1.1.36

3 years ago

1.1.35

3 years ago

1.1.30

3 years ago

1.1.29

3 years ago

1.1.28

3 years ago

1.1.27

3 years ago

1.1.26

3 years ago

1.1.25

3 years ago

1.1.22

3 years ago

1.1.24

3 years ago

1.1.19

3 years ago

1.1.18

3 years ago

1.1.17

3 years ago

1.1.16

3 years ago

1.1.15

3 years ago

1.1.14

3 years ago

1.1.13

3 years ago

1.1.12

3 years ago

1.1.11

3 years ago

1.1.9

3 years ago

1.1.10

3 years ago

1.1.8

3 years ago

1.1.7

3 years ago

1.1.6

3 years ago

1.1.5

3 years ago

1.1.4

3 years ago

1.1.3

3 years ago

1.1.2

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.0.60

3 years ago

1.0.59

3 years ago

1.0.58

3 years ago

1.0.57

3 years ago

1.0.56

3 years ago

1.0.55

3 years ago

1.0.54

3 years ago

1.0.53

3 years ago

1.0.52

3 years ago

1.0.50

3 years ago

1.0.48

3 years ago

1.0.47

3 years ago

1.0.45

3 years ago

1.0.43

3 years ago

1.0.42

3 years ago

1.0.41

3 years ago

1.0.40

3 years ago

1.0.39

3 years ago

1.0.33

3 years ago

1.0.32

3 years ago

1.0.29

3 years ago

1.0.30

3 years ago

1.0.28

3 years ago

1.0.26

3 years ago

1.0.25

3 years ago

1.0.24

3 years ago

1.0.23

3 years ago

1.0.22

3 years ago

1.0.21

3 years ago

1.0.20

3 years ago

1.0.18

3 years ago

1.0.17

3 years ago

1.0.15

3 years ago

1.0.14

3 years ago

1.0.13

3 years ago

1.0.12

3 years ago

1.0.11

3 years ago

1.0.10

3 years ago

1.0.8

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.3

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago

0.0.2

3 years ago