From e5059165259e4d757abc811c0c14bbc4a3dbaee9 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Fri, 19 Dec 2025 11:37:22 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=90=8E=EF=BC=8C=E7=94=A8=E7=9B=B8=E5=90=8C?= =?UTF-8?q?=E7=9A=84oauth=E6=8E=88=E6=9D=83=E7=99=BB=E5=BD=95=E6=8A=A5?= =?UTF-8?q?=E9=94=99=E7=94=A8=E6=88=B7=E4=B8=8D=E5=AD=98=E5=9C=A8=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://github.com/certd/certd/issues/603 --- .../src/modules/login/service/login-service.ts | 4 +++- .../src/modules/sys/authority/service/user-service.ts | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) 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) {