优化权限判断

This commit is contained in:
cool 2023-11-22 10:20:24 +08:00
parent ad1bfdad63
commit dca122691e
3 changed files with 39 additions and 38 deletions

View File

@ -6,6 +6,7 @@ import {
CoolUrlTag, CoolUrlTag,
CoolTag, CoolTag,
TagTypes, TagTypes,
RESCODE,
} from '@cool-midway/core'; } from '@cool-midway/core';
import { LoginDTO } from '../../dto/login'; import { LoginDTO } from '../../dto/login';
import { BaseSysLoginService } from '../../service/sys/login'; import { BaseSysLoginService } from '../../service/sys/login';
@ -84,6 +85,15 @@ export class BaseOpenController extends BaseController {
@CoolTag(TagTypes.IGNORE_TOKEN) @CoolTag(TagTypes.IGNORE_TOKEN)
@Get('/refreshToken', { summary: '刷新token' }) @Get('/refreshToken', { summary: '刷新token' })
async refreshToken(@Query('refreshToken') refreshToken: string) { async refreshToken(@Query('refreshToken') refreshToken: string) {
return this.ok(await this.baseSysLoginService.refreshToken(refreshToken)); try {
const token = await this.baseSysLoginService.refreshToken(refreshToken);
return this.ok(token);
} catch (e) {
this.ctx.status = 401;
this.ctx.body = {
code: RESCODE.COMMFAIL,
message: '登录失效~',
};
}
} }
} }

View File

@ -39,7 +39,7 @@ export class BaseAuthorityMiddleware
return async (ctx: Context, next: NextFunction) => { return async (ctx: Context, next: NextFunction) => {
let statusCode = 200; let statusCode = 200;
let { url } = ctx; let { url } = ctx;
url = url.replace(this.prefix, ''); url = url.replace(this.prefix, '').split('?')[0];
const token = ctx.get('Authorization'); const token = ctx.get('Authorization');
const adminUrl = '/admin/'; const adminUrl = '/admin/';
// 路由地址为 admin前缀的 需要权限校验 // 路由地址为 admin前缀的 需要权限校验

View File

@ -1,5 +1,5 @@
import { Inject, Provide, Config } from '@midwayjs/decorator'; import { Inject, Provide, Config } from '@midwayjs/decorator';
import { BaseService, CoolCommException, RESCODE } from '@cool-midway/core'; import { BaseService, CoolCommException } from '@cool-midway/core';
import { LoginDTO } from '../../dto/login'; import { LoginDTO } from '../../dto/login';
import * as svgCaptcha from 'svg-captcha'; import * as svgCaptcha from 'svg-captcha';
import { v1 as uuid } from 'uuid'; import { v1 as uuid } from 'uuid';
@ -217,7 +217,6 @@ export class BaseSysLoginService extends BaseService {
* @param token * @param token
*/ */
async refreshToken(token: string) { async refreshToken(token: string) {
try {
const decoded = jwt.verify(token, this.coolConfig.jwt.secret); const decoded = jwt.verify(token, this.coolConfig.jwt.secret);
if (decoded && decoded['isRefresh']) { if (decoded && decoded['isRefresh']) {
delete decoded['exp']; delete decoded['exp'];
@ -247,13 +246,5 @@ export class BaseSysLoginService extends BaseService {
); );
return result; return result;
} }
} catch (err) {
this.ctx.status = 401;
this.ctx.body = {
code: RESCODE.COMMFAIL,
message: '登录失效~',
};
return;
}
} }
} }