From 85e94966ac2f67e82951e6023ca475b3c0aff0c4 Mon Sep 17 00:00:00 2001 From: archer <545436317@qq.com> Date: Fri, 26 May 2023 23:37:21 +0800 Subject: [PATCH] fix: kb delete and google auth --- src/hooks/useSendCode.ts | 2 +- src/pages/api/plugins/kb/delete.ts | 28 ++++++++++++++++++++-------- src/utils/plugin/google.ts | 7 ++++--- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/src/hooks/useSendCode.ts b/src/hooks/useSendCode.ts index 92ae6f29c..4ef2a1649 100644 --- a/src/hooks/useSendCode.ts +++ b/src/hooks/useSendCode.ts @@ -54,7 +54,7 @@ export const useSendCode = () => { } setCodeSending(false); }, - [toast] + [googleVerKey, toast] ); return { diff --git a/src/pages/api/plugins/kb/delete.ts b/src/pages/api/plugins/kb/delete.ts index a2749a59d..d79ac5931 100644 --- a/src/pages/api/plugins/kb/delete.ts +++ b/src/pages/api/plugins/kb/delete.ts @@ -1,8 +1,9 @@ import type { NextApiRequest, NextApiResponse } from 'next'; import { jsonRes } from '@/service/response'; -import { connectToDatabase, KB } from '@/service/mongo'; +import { connectToDatabase, KB, Model, TrainingData } from '@/service/mongo'; import { authUser } from '@/service/utils/auth'; import { PgClient } from '@/service/pg'; +import { Types } from 'mongoose'; export default async function handler(req: NextApiRequest, res: NextApiResponse) { try { @@ -19,19 +20,30 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse< await connectToDatabase(); - // delete mongo data - await KB.findOneAndDelete({ - _id: id, - userId - }); - // delete all pg data - // 删除 pg 中所有该模型的数据 await PgClient.delete('modelData', { where: [['user_id', userId], 'AND', ['kb_id', id]] }); + // delete training data + await TrainingData.deleteMany({ + userId, + kbId: id + }); + // delete related model + await Model.updateMany( + { + userId + }, + { $pull: { 'chat.relatedKbs': new Types.ObjectId(id) } } + ); + + // delete kb data + await KB.findOneAndDelete({ + _id: id, + userId + }); jsonRes(res); } catch (err) { diff --git a/src/utils/plugin/google.ts b/src/utils/plugin/google.ts index bd2543c0a..366b8b6f1 100644 --- a/src/utils/plugin/google.ts +++ b/src/utils/plugin/google.ts @@ -2,7 +2,7 @@ import axios from 'axios'; import { Obj2Query } from '../tools'; export const getClientToken = (googleVerKey: string) => { - if (!grecaptcha?.ready) return ''; + if (typeof grecaptcha === 'undefined' || !grecaptcha?.ready) return ''; return new Promise((resolve, reject) => { grecaptcha.ready(async () => { try { @@ -23,10 +23,11 @@ export const authGoogleToken = async (data: { response: string; remoteip?: string; }) => { - const res = await axios.post<{ score?: number }>( + const res = await axios.post<{ score?: number; success: boolean }>( `https://www.recaptcha.net/recaptcha/api/siteverify?${Obj2Query(data)}` ); - if (res.data.score && res.data.score >= 0.5) { + + if (res.data.success && res.data.score && res.data.score >= 0.7) { return Promise.resolve(''); } return Promise.reject('非法环境');