|
@@ -40,31 +40,35 @@ export class BaseAuthorityMiddleware
|
|
|
resolve() {
|
|
|
return async (ctx: Context, next: NextFunction) => {
|
|
|
// 签名校验
|
|
|
- let { header } = ctx;
|
|
|
- const {
|
|
|
- 'va-key': vaKey = '',
|
|
|
- 'va-timestamp': vaTimestamp = '',
|
|
|
- 'va-nonce': vaNonce = '',
|
|
|
- 'va-sign': vaSign = '',
|
|
|
- } = header;
|
|
|
- const params =
|
|
|
- ctx?.req.method === 'GET' ? ctx?.request.query : ctx?.request.body;
|
|
|
+ let { header, url } = ctx;
|
|
|
+ const adminUrl = '/api/v1/';
|
|
|
+ // 路由地址为 api/v1 前缀的 需要权限校验
|
|
|
+ if (url.includes(adminUrl)) {
|
|
|
+ const {
|
|
|
+ 'va-key': vaKey = '',
|
|
|
+ 'va-timestamp': vaTimestamp = '',
|
|
|
+ 'va-nonce': vaNonce = '',
|
|
|
+ 'va-sign': vaSign = '',
|
|
|
+ } = header;
|
|
|
+ const params =
|
|
|
+ ctx?.req.method === 'GET' ? ctx?.request.query : ctx?.request.body;
|
|
|
|
|
|
- // 2. 生成签名
|
|
|
- const sign = this.generateSignature(
|
|
|
- `${vaTimestamp}`,
|
|
|
- `${vaNonce}`,
|
|
|
- JSON.stringify(params),
|
|
|
- `${vaKey}`
|
|
|
- );
|
|
|
-
|
|
|
- if (sign !== vaSign) {
|
|
|
- ctx.status = 401;
|
|
|
- ctx.body = {
|
|
|
- code: RESCODE.AUTHFAIL,
|
|
|
- message: '签名不匹配,认证失败',
|
|
|
- };
|
|
|
- return;
|
|
|
+ // 2. 生成签名
|
|
|
+ const sign = this.generateSignature(
|
|
|
+ `${vaTimestamp}`,
|
|
|
+ `${vaNonce}`,
|
|
|
+ JSON.stringify(params),
|
|
|
+ `${vaKey}`
|
|
|
+ );
|
|
|
+ console.log(6363636, {sign, vaSign})
|
|
|
+ if (sign !== vaSign) {
|
|
|
+ ctx.status = 401;
|
|
|
+ ctx.body = {
|
|
|
+ code: RESCODE.AUTHFAIL,
|
|
|
+ message: '签名不匹配,认证失败',
|
|
|
+ };
|
|
|
+ return;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
await next();
|