diff --git a/packages/ui/certd-server/src/modules/login/service/login-service.ts b/packages/ui/certd-server/src/modules/login/service/login-service.ts index ca805c409..8563782d4 100644 --- a/packages/ui/certd-server/src/modules/login/service/login-service.ts +++ b/packages/ui/certd-server/src/modules/login/service/login-service.ts @@ -242,7 +242,9 @@ export class LoginService { } const info = await this.userService.findOne({id: oauthBound.userId}); if (info == null) { - throw new CommonException('用户不存在'); + // 用户已被删除,删除此oauth绑定 + await this.oauthBoundService.delete([oauthBound.id]); + return null } return this.generateToken(info); } diff --git a/packages/ui/certd-server/src/modules/sys/authority/service/user-service.ts b/packages/ui/certd-server/src/modules/sys/authority/service/user-service.ts index 752515f98..9d6bc57c0 100644 --- a/packages/ui/certd-server/src/modules/sys/authority/service/user-service.ts +++ b/packages/ui/certd-server/src/modules/sys/authority/service/user-service.ts @@ -13,6 +13,7 @@ import { RandomUtil } from '../../../../utils/random.js'; import dayjs from 'dayjs'; import { DbAdapter } from '../../../db/index.js'; import { simpleNanoId, utils } from '@certd/basic'; +import { OauthBoundService } from '../../../login/service/oauth-bound-service.js'; export type RegisterType = 'username' | 'mobile' | 'email'; export type ForgotPasswordType = 'mobile' | 'email'; @@ -42,6 +43,10 @@ export class UserService extends BaseService { @Inject() dbAdapter: DbAdapter; + @Inject() + oauthBoundService: OauthBoundService; + + //@ts-ignore getRepository() { return this.repository; @@ -311,6 +316,9 @@ export class UserService extends BaseService { throw new CommonException('不能删除管理员'); } await super.delete(ids); + await this.oauthBoundService.deleteWhere({ + userId: In(ids), + }); } async isAdmin(userId: any) {