@cicctencent/midwayjs-base 1.0.22 → 1.0.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export * as koa from '@midwayjs/koa';
2
2
  export { BaseConfiguration as Configuration } from './configuration';
3
3
  export * as utils from './lib/utils';
4
+ export * as jwt from './lib/jwt';
4
5
  export * as decorators from './lib/decorator';
5
6
  export * from '@fefeding/common/dist/models/base/enumType';
6
7
  export { BaseORM as BaseEntity } from '@fefeding/common/dist/models/base/baseORM';
package/dist/index.js CHANGED
@@ -14,12 +14,13 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.BaseEntity = exports.decorators = exports.utils = exports.Configuration = exports.koa = void 0;
17
+ exports.BaseEntity = exports.decorators = exports.jwt = exports.utils = exports.Configuration = exports.koa = void 0;
18
18
  // @ts-ignore
19
19
  exports.koa = require("@midwayjs/koa");
20
20
  var configuration_1 = require("./configuration");
21
21
  Object.defineProperty(exports, "Configuration", { enumerable: true, get: function () { return configuration_1.BaseConfiguration; } });
22
22
  exports.utils = require("./lib/utils");
23
+ exports.jwt = require("./lib/jwt");
23
24
  exports.decorators = require("./lib/decorator");
24
25
  __exportStar(require("@fefeding/common/dist/models/base/enumType"), exports);
25
26
  var baseORM_1 = require("@fefeding/common/dist/models/base/baseORM");
@@ -34,4 +35,4 @@ __exportStar(require("./base/base.model.service"), exports);
34
35
  __exportStar(require("./service/session.service"), exports);
35
36
  __exportStar(require("./service/tencent.service"), exports);
36
37
  __exportStar(require("./base/base.controller"), exports);
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxhQUFhO0FBQ2IsdUNBQXFDO0FBRXJDLGlEQUFxRTtBQUE1RCw4R0FBQSxpQkFBaUIsT0FBaUI7QUFFM0MsdUNBQXFDO0FBQ3JDLGdEQUE4QztBQUc5Qyw2RUFBMkQ7QUFDM0QscUVBQWtGO0FBQXpFLHFHQUFBLE9BQU8sT0FBYztBQUc5QixrRUFBZ0Q7QUFDaEQsMkRBQXlDO0FBQ3pDLGlFQUErQztBQUUvQyw4Q0FBNEI7QUFDNUIsK0NBQTZCO0FBRTdCLHNEQUFvQztBQUNwQyw0REFBMEM7QUFDMUMsNERBQTBDO0FBQzFDLDREQUEwQztBQUUxQyx5REFBdUMifQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxhQUFhO0FBQ2IsdUNBQXFDO0FBRXJDLGlEQUFxRTtBQUE1RCw4R0FBQSxpQkFBaUIsT0FBaUI7QUFFM0MsdUNBQXFDO0FBQ3JDLG1DQUFpQztBQUNqQyxnREFBOEM7QUFHOUMsNkVBQTJEO0FBQzNELHFFQUFrRjtBQUF6RSxxR0FBQSxPQUFPLE9BQWM7QUFHOUIsa0VBQWdEO0FBQ2hELDJEQUF5QztBQUN6QyxpRUFBK0M7QUFFL0MsOENBQTRCO0FBQzVCLCtDQUE2QjtBQUU3QixzREFBb0M7QUFDcEMsNERBQTBDO0FBQzFDLDREQUEwQztBQUMxQyw0REFBMEM7QUFFMUMseURBQXVDIn0=
@@ -0,0 +1,135 @@
1
+ export type Algorithm = 'HS256' | 'HS384' | 'HS512' | 'RS256' | 'RS384' | 'RS512' | 'ES256' | 'ES384' | 'ES512' | 'PS256' | 'PS384' | 'PS512';
2
+ export interface VerifyOptions {
3
+ /**
4
+ * 允许的算法列表
5
+ * 如果未指定,将根据提供的密钥类型使用默认值:
6
+ * - secret: ['HS256', 'HS384', 'HS512']
7
+ * - rsa: ['RS256', 'RS384', 'RS512']
8
+ * - ec: ['ES256', 'ES384', 'ES512']
9
+ * - 默认: ['RS256', 'RS384', 'RS512']
10
+ */
11
+ algorithms?: Algorithm[];
12
+ /**
13
+ * 用于验证受众(aud 声明)
14
+ * 可以是字符串、正则表达式或它们的数组
15
+ * 例如: "urn:foo", /urn:f[o]{2}/, [/urn:f[o]{2}/, "urn:bar"]
16
+ */
17
+ audience?: string | RegExp | (string | RegExp)[];
18
+ /**
19
+ * 如果为 true,返回包含 decoded { payload, header, signature } 的对象
20
+ * 而不仅仅是 payload 的内容
21
+ */
22
+ complete?: boolean;
23
+ /**
24
+ * issuer 声明的有效值(iss 字段),可以是字符串或字符串数组
25
+ */
26
+ issuer?: string | string[];
27
+ /**
28
+ * 用于验证 JWT ID(jti 声明)的值
29
+ */
30
+ jwtid?: string;
31
+ /**
32
+ * 如果为 true,则不验证令牌的过期时间(exp 声明)
33
+ */
34
+ ignoreExpiration?: boolean;
35
+ /**
36
+ * 如果为 true,则不验证令牌的生效时间(nbf 声明)
37
+ */
38
+ ignoreNotBefore?: boolean;
39
+ /**
40
+ * 用于验证主题(sub 声明)的值
41
+ */
42
+ subject?: string;
43
+ /**
44
+ * 检查 nbf 和 exp 声明时允许的秒数偏差
45
+ * 用于处理不同服务器之间的时钟差异
46
+ */
47
+ clockTolerance?: number;
48
+ /**
49
+ * 令牌仍然有效的最大允许年龄
50
+ * 可以是秒数或描述时间跨度的字符串
51
+ * 例如: 1000, "2 days", "10h", "7d"
52
+ * 数值被解释为秒数,字符串需提供时间单位
53
+ */
54
+ maxAge?: number | string;
55
+ /**
56
+ * 用于所有必要比较的当前时间(以秒为单位)
57
+ */
58
+ clockTimestamp?: number;
59
+ /**
60
+ * 用于验证 nonce 声明的值
61
+ * 在 OpenID 中用于 ID 令牌
62
+ */
63
+ nonce?: string;
64
+ /**
65
+ * 如果为 true,允许与指定算法不匹配的非对称密钥
66
+ * 此选项仅用于向后兼容,应避免使用
67
+ */
68
+ allowInvalidAsymmetricKeyTypes?: boolean;
69
+ }
70
+ export interface SignOptions {
71
+ /**
72
+ * 用于签名的算法
73
+ * @default 'HS256'
74
+ */
75
+ algorithm?: Algorithm;
76
+ /**
77
+ * 令牌过期时间
78
+ * 可以是秒数或描述时间跨度的字符串(如 "2 days"、"10h")
79
+ * 不能与 payload 中的 exp 同时存在
80
+ */
81
+ expiresIn?: number | string;
82
+ /**
83
+ * 令牌生效时间(在此时间前令牌无效)
84
+ * 可以是秒数或描述时间跨度的字符串(如 "2 days"、"10h")
85
+ * 不能与 payload 中的 nbf 同时存在
86
+ */
87
+ notBefore?: number | string;
88
+ /**
89
+ * 受众声明(aud)
90
+ * 不能与 payload 中的 aud 同时存在
91
+ */
92
+ audience?: string | string[];
93
+ /**
94
+ * 发行者声明(iss)
95
+ * 不能与 payload 中的 iss 同时存在
96
+ */
97
+ issuer?: string;
98
+ /**
99
+ * JWT ID 声明(jti)
100
+ */
101
+ jwtid?: string;
102
+ /**
103
+ * 主题声明(sub)
104
+ * 不能与 payload 中的 sub 同时存在
105
+ */
106
+ subject?: string;
107
+ /**
108
+ * 如果为 true,则不在令牌中包含 iat(发行时间)声明
109
+ */
110
+ noTimestamp?: boolean;
111
+ /**
112
+ * 自定义 JWT 头部信息
113
+ */
114
+ header?: Record<string, any>;
115
+ /**
116
+ * 用于头部中的 kid(密钥 ID)声明
117
+ */
118
+ keyid?: string;
119
+ /**
120
+ * 如果为 true,签名函数将直接修改 payload 对象
121
+ * 在需要获取应用声明后但编码前的原始 payload 引用时有用
122
+ */
123
+ mutatePayload?: boolean;
124
+ /**
125
+ * 如果为 true,允许使用 modulus 小于 2048 的私钥进行 RSA 签名
126
+ */
127
+ allowInsecureKeySizes?: boolean;
128
+ /**
129
+ * 如果为 true,允许与指定算法不匹配的非对称密钥
130
+ * 此选项仅用于向后兼容,应避免使用
131
+ */
132
+ allowInvalidAsymmetricKeyTypes?: boolean;
133
+ }
134
+ export declare function decodeJWT(token: string, secretKey: string, options?: VerifyOptions): any;
135
+ export declare function encodeJWT(data: any, secretKey: string, options?: SignOptions): any;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decodeJWT = decodeJWT;
4
+ exports.encodeJWT = encodeJWT;
5
+ const jwt = require("jsonwebtoken");
6
+ // 验证jwt
7
+ function decodeJWT(token, secretKey, options) {
8
+ try {
9
+ const decoded = jwt.verify(token, secretKey, {
10
+ algorithm: 'HS256',
11
+ ...(options || {})
12
+ });
13
+ return decoded;
14
+ }
15
+ catch (err) {
16
+ console.error('Token 验证失败:', err.message); // 如过期、篡改等
17
+ return null;
18
+ }
19
+ }
20
+ /*
21
+ id: string;
22
+ code?: string;
23
+ loginId: string;
24
+ userId?: number;
25
+ user?: User;
26
+ account?: Account;
27
+ appId?: number;
28
+ status?: EStatus;
29
+ lastDate: Date;
30
+ */
31
+ function encodeJWT(data, secretKey, options) {
32
+ const token = jwt.sign(data, secretKey, {
33
+ algorithm: 'HS256',
34
+ ...(options || {})
35
+ });
36
+ return token;
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9qd3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF3S0EsOEJBV0M7QUFhRCw4QkFNQztBQXJNRCxvQ0FBb0M7QUFzS3BDLFFBQVE7QUFDUixTQUFnQixTQUFTLENBQUMsS0FBYSxFQUFFLFNBQWlCLEVBQUUsT0FBdUI7SUFDL0UsSUFBSSxDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQzdDLFNBQVMsRUFBRSxPQUFPO1lBQ2xCLEdBQUcsQ0FBQyxPQUFPLElBQUUsRUFBRSxDQUFDO1NBQ25CLENBQUMsQ0FBQztRQUNDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVTtRQUNyRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7QUFDUCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7RUFVRTtBQUNGLFNBQWdCLFNBQVMsQ0FBQyxJQUFTLEVBQUUsU0FBaUIsRUFBRSxPQUFxQjtJQUN6RSxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUU7UUFDcEMsU0FBUyxFQUFFLE9BQU87UUFDbEIsR0FBRyxDQUFDLE9BQU8sSUFBRSxFQUFFLENBQUM7S0FDbkIsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyJ9
@@ -1,4 +1,6 @@
1
1
  import { Context } from '@midwayjs/koa';
2
+ import { CookieSetOptions, CookieGetOptions } from '@midwayjs/cookies';
3
+ export * from './jwt';
2
4
  import { loadEnv } from '../config/env';
3
5
  export declare function checkUrlHost(url: string, host: string | Array<string>): boolean;
4
6
  /**
@@ -8,8 +10,6 @@ export declare function checkUrlHost(url: string, host: string | Array<string>):
8
10
  * @returns
9
11
  */
10
12
  export declare function getDefaultTemplate(ctx: Context, file?: string, data?: any): Promise<string>;
11
- export declare function getAuthToken(ctx: Context): any;
12
- export declare function setAuthToken(ctx: Context, token: string): void;
13
- export declare function decodeJWT(token: string, secretKey: string): any;
14
- export declare function encodeJWT(data: any, secretKey: string): any;
15
- export { loadEnv };
13
+ export declare function getAuthToken(ctx: Context, option?: CookieGetOptions): any;
14
+ export declare function setAuthToken(ctx: Context, token: string, option?: CookieSetOptions): void;
15
+ export { loadEnv, };
package/dist/lib/utils.js CHANGED
@@ -1,13 +1,25 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
17
  exports.loadEnv = void 0;
4
18
  exports.checkUrlHost = checkUrlHost;
5
19
  exports.getDefaultTemplate = getDefaultTemplate;
6
20
  exports.getAuthToken = getAuthToken;
7
21
  exports.setAuthToken = setAuthToken;
8
- exports.decodeJWT = decodeJWT;
9
- exports.encodeJWT = encodeJWT;
10
- const jwt = require("jsonwebtoken");
22
+ __exportStar(require("./jwt"), exports);
11
23
  const env_1 = require("../config/env");
12
24
  Object.defineProperty(exports, "loadEnv", { enumerable: true, get: function () { return env_1.loadEnv; } });
13
25
  //判断url是否是对应的域名
@@ -53,48 +65,24 @@ function getDefaultTemplate(ctx, file = 'index.html', data = {}) {
53
65
  return ctx.render(file, option);
54
66
  }
55
67
  // 从当前请求中获取登陆态token
56
- function getAuthToken(ctx) {
68
+ function getAuthToken(ctx, option) {
57
69
  const body = (ctx.request.body || {});
58
70
  const token = ctx.URL.searchParams.get('token') ||
59
71
  ctx.request.header['x-auth-token'] ||
60
72
  ctx.cookies.get('token', {
61
73
  signed: false,
74
+ ...(option || {})
62
75
  }) ||
63
76
  ctx.request.header['authorization'] ||
64
77
  body.token;
65
78
  return token;
66
79
  }
67
80
  // 种登陆态token
68
- function setAuthToken(ctx, token) {
81
+ function setAuthToken(ctx, token, option) {
69
82
  ctx.cookies.set('token', token, {
70
83
  httpOnly: true,
71
84
  maxAge: 1000 * 60 * 60 * 24 * 30,
85
+ ...(option || {})
72
86
  });
73
87
  }
74
- // 验证jwt
75
- function decodeJWT(token, secretKey) {
76
- try {
77
- const decoded = jwt.verify(token, secretKey);
78
- return decoded;
79
- }
80
- catch (err) {
81
- console.error('Token 验证失败:', err.message); // 如过期、篡改等
82
- return null;
83
- }
84
- }
85
- /*
86
- id: string;
87
- code?: string;
88
- loginId: string;
89
- userId?: number;
90
- user?: User;
91
- account?: Account;
92
- appId?: number;
93
- status?: EStatus;
94
- lastDate: Date;
95
- */
96
- function encodeJWT(data, secretKey) {
97
- const token = jwt.sign(data, secretKey, { algorithm: 'HS256' });
98
- return token;
99
- }
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU1BLG9DQVVDO0FBUUQsZ0RBcUJDO0FBR0Qsb0NBV0M7QUFHRCxvQ0FLQztBQUdELDhCQVFDO0FBYUQsOEJBR0M7QUE1RkQsb0NBQW9DO0FBQ3BDLHVDQUF3QztBQThGcEMsd0ZBOUZLLGFBQU8sT0E4Rkw7QUE1RlgsZUFBZTtBQUNmLFNBQWdCLFlBQVksQ0FBQyxHQUFXLEVBQUUsSUFBMEI7SUFDaEUsSUFBRyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ3pDLElBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3JCLEtBQUksTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDbEIsSUFBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFBRSxPQUFPLElBQUksQ0FBQztRQUN6QyxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUNELE1BQU0sR0FBRyxHQUFHLElBQUksTUFBTSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ2pELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN6QixDQUFDO0FBRUQ7Ozs7O09BS087QUFDUCxTQUFnQixrQkFBa0IsQ0FBQyxHQUFZLEVBQUUsSUFBSSxHQUFDLFlBQVksRUFBRSxPQUFZLEVBQUU7SUFDOUUsc0JBQXNCO0lBQ3RCLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDO0lBQ3pDLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUM7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
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT0Esb0NBVUM7QUFRRCxnREFxQkM7QUFHRCxvQ0FZQztBQUdELG9DQU1DO0FBbkVELHdDQUFzQjtBQUN0Qix1Q0FBd0M7QUFzRXBDLHdGQXRFSyxhQUFPLE9Bc0VMO0FBcEVYLGVBQWU7QUFDZixTQUFnQixZQUFZLENBQUMsR0FBVyxFQUFFLElBQTBCO0lBQ2hFLElBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7UUFBRSxPQUFPLElBQUksQ0FBQztJQUN6QyxJQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNyQixLQUFJLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2xCLElBQUcsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7Z0JBQUUsT0FBTyxJQUFJLENBQUM7UUFDekMsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFDRCxNQUFNLEdBQUcsR0FBRyxJQUFJLE1BQU0sQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNqRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDekIsQ0FBQztBQUVEOzs7OztPQUtPO0FBQ1AsU0FBZ0Isa0JBQWtCLENBQUMsR0FBWSxFQUFFLElBQUksR0FBQyxZQUFZLEVBQUUsT0FBWSxFQUFFO0lBQzlFLHNCQUFzQjtJQUN0QixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztJQUN6QyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25DLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDO0lBQ3ZDLE1BQU0sTUFBTSxHQUFHO1FBQ1gsSUFBSSxFQUFFO1lBQ0YsTUFBTSxFQUFFO2dCQUNKLE1BQU07YUFDVDtZQUNELE9BQU8sRUFBRSxHQUFHLENBQUMsY0FBYyxJQUFFLElBQUk7WUFDakMsR0FBRyxJQUFJO1NBQ1Y7UUFDRCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ3ZCLFdBQVcsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxFQUFFO1FBQzFDLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztRQUNoQixNQUFNO1FBQ04sVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsUUFBUSxJQUFJLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFO0tBQ2xFLENBQUM7SUFDRiwwQkFBMEI7SUFDMUIsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNwQyxDQUFDO0FBRUQsbUJBQW1CO0FBQ25CLFNBQWdCLFlBQVksQ0FBQyxHQUFZLEVBQUUsTUFBeUI7SUFDaEUsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFLENBQVEsQ0FBQztJQUN6QyxNQUFNLEtBQUssR0FDWCxHQUFHLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO1FBQ2pDLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQztRQUNsQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUU7WUFDckIsTUFBTSxFQUFFLEtBQUs7WUFDYixHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQztTQUNwQixDQUFDO1FBQ0YsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDO1FBQy9CLElBQUksQ0FBQyxLQUFLLENBQUU7SUFDcEIsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQztBQUVELFlBQVk7QUFDWixTQUFnQixZQUFZLENBQUMsR0FBWSxFQUFFLEtBQWEsRUFBRSxNQUF5QjtJQUMvRSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFO1FBQzVCLFFBQVEsRUFBRSxJQUFJO1FBQ2QsTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO1FBQ2hDLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO0tBQ3BCLENBQUMsQ0FBQztBQUNQLENBQUMifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cicctencent/midwayjs-base",
3
- "version": "1.0.22",
3
+ "version": "1.0.24",
4
4
  "description": "基础框架,服务",
5
5
  "main": "dist/index.js",
6
6
  "typings": "index.d.ts",
@@ -44,6 +44,7 @@
44
44
  "@midwayjs/axios": "^3.20.11",
45
45
  "@midwayjs/bootstrap": "^3.20.11",
46
46
  "@midwayjs/cache-manager": "^3.20.11",
47
+ "@midwayjs/cookies": "^1.3.0",
47
48
  "@midwayjs/core": "^3.20.11",
48
49
  "@midwayjs/decorator": "^3.20.11",
49
50
  "@midwayjs/info": "^3.20.12",
@@ -1,54 +1,54 @@
1
- import { type Session } from '@fefeding/common/dist/models/account/session';
2
- import { type LoggerOption } from '@fefeding/common/dist/utils/logger';
3
- import { ILogger, MidwayAppInfo } from '@midwayjs/core';
4
-
5
- declare module '@midwayjs/core/dist/interface' {
6
- interface MidwayConfig {
7
-
8
- }
9
- interface Context {
10
-
11
- }
12
- }
13
-
14
- // 扩展 MidwayAppInfo 接口,添加自定义属性
15
- declare module '@midwayjs/core' {
16
- interface MidwayAppInfo {
17
- dist: string;
18
- webDist: string;
19
- webPublic: string;
20
- appId: number;
21
- }
22
- }
23
-
24
- declare module '@midwayjs/koa/dist/interface' {
25
- // eslint-disable-next-line @typescript-eslint/no-empty-interface
26
- interface Context {
27
- /**
28
- * 当前登陆态
29
- */
30
- currentSession?: Session;
31
- /**
32
- * 当前登陆态token
33
- */
34
- auth_token?: string;
35
- clientIP?: string; // 客户IP
36
- // 当当请
37
- detect: {
38
- IS_MOBILE: boolean,
39
- IS_MQQ: boolean,
40
- IS_WEIXIN: boolean,
41
- IS_WECHATTOOLS: boolean,
42
- IS_PCWEIXIN: boolean,
43
- IS_WXWORK: boolean,
44
- IS_MINA: boolean,
45
- REQUESTIP: string,
46
- HOSTNAME: string,
47
- CLIENTIP: string,
48
- },
49
- logger: ILogger & {
50
- // 设置环境变量
51
- setOptions(options: LoggerOption): void;
52
- };
53
- }
54
- }
1
+ import { type Session } from '@fefeding/common/dist/models/account/session';
2
+ import { type LoggerOption } from '@fefeding/common/dist/utils/logger';
3
+ import { ILogger, MidwayAppInfo } from '@midwayjs/core';
4
+
5
+ declare module '@midwayjs/core/dist/interface' {
6
+ interface MidwayConfig {
7
+
8
+ }
9
+ interface Context {
10
+
11
+ }
12
+ }
13
+
14
+ // 扩展 MidwayAppInfo 接口,添加自定义属性
15
+ declare module '@midwayjs/core' {
16
+ interface MidwayAppInfo {
17
+ dist: string;
18
+ webDist: string;
19
+ webPublic: string;
20
+ appId: number;
21
+ }
22
+ }
23
+
24
+ declare module '@midwayjs/koa/dist/interface' {
25
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
26
+ interface Context {
27
+ /**
28
+ * 当前登陆态
29
+ */
30
+ currentSession?: Session;
31
+ /**
32
+ * 当前登陆态token
33
+ */
34
+ auth_token?: string;
35
+ clientIP?: string; // 客户IP
36
+ // 当当请
37
+ detect: {
38
+ IS_MOBILE: boolean,
39
+ IS_MQQ: boolean,
40
+ IS_WEIXIN: boolean,
41
+ IS_WECHATTOOLS: boolean,
42
+ IS_PCWEIXIN: boolean,
43
+ IS_WXWORK: boolean,
44
+ IS_MINA: boolean,
45
+ REQUESTIP: string,
46
+ HOSTNAME: string,
47
+ CLIENTIP: string,
48
+ },
49
+ logger: ILogger & {
50
+ // 设置环境变量
51
+ setOptions(options: LoggerOption): void;
52
+ };
53
+ }
54
+ }