Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
赵月辉
/
fastgpt-migrated
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Unverified
Commit
e45c1eb1
authored
May 21, 2023
by
archer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
uniform authuser
parent
bd9d83e6
Hide whitespace changes
Inline
Side-by-side
Showing
41 changed files
with
173 additions
and
128 deletions
+173
-128
.env.template
+3
-1
src/pages/api/chat/delChatRecordByContentId.ts
+2
-2
src/pages/api/chat/getHistory.ts
+2
-2
src/pages/api/chat/init.ts
+2
-2
src/pages/api/chat/removeHistory.ts
+2
-2
src/pages/api/chat/saveChat.ts
+2
-2
src/pages/api/chat/shareChat/create.ts
+2
-2
src/pages/api/chat/shareChat/delete.ts
+2
-2
src/pages/api/chat/shareChat/list.ts
+2
-2
src/pages/api/model/create.ts
+2
-2
src/pages/api/model/del.ts
+2
-2
src/pages/api/model/detail.tsx
+2
-2
src/pages/api/model/list.ts
+2
-2
src/pages/api/model/share/collection.ts
+2
-2
src/pages/api/model/share/getCollection.ts
+2
-2
src/pages/api/model/update.ts
+2
-2
src/pages/api/openapi/chat/chat.ts
+2
-2
src/pages/api/openapi/delKey.ts
+2
-2
src/pages/api/openapi/getKeys.ts
+2
-2
src/pages/api/openapi/kb/delDataById.ts
+2
-2
src/pages/api/openapi/kb/pushData.ts
+4
-4
src/pages/api/openapi/kb/updateData.ts
+2
-2
src/pages/api/openapi/postKey.ts
+2
-2
src/pages/api/openapi/text/splitText.ts
+2
-2
src/pages/api/plugins/kb/create.ts
+2
-2
src/pages/api/plugins/kb/data/exportModelData.ts
+2
-2
src/pages/api/plugins/kb/data/getDataList.ts
+2
-2
src/pages/api/plugins/kb/data/getTrainingData.ts
+2
-2
src/pages/api/plugins/kb/delete.ts
+2
-2
src/pages/api/plugins/kb/detail.ts
+2
-2
src/pages/api/plugins/kb/list.ts
+2
-2
src/pages/api/plugins/kb/update.ts
+2
-2
src/pages/api/user/checkPayResult.ts
+2
-2
src/pages/api/user/getBill.ts
+2
-2
src/pages/api/user/getPayCode.ts
+2
-2
src/pages/api/user/getPayOrders.ts
+2
-2
src/pages/api/user/promotion/getPromotionData.ts
+2
-2
src/pages/api/user/promotion/getPromotions.ts
+2
-2
src/pages/api/user/tokenLogin.ts
+2
-2
src/pages/api/user/update.ts
+2
-2
src/service/utils/auth.ts
+90
-47
No files found.
.env.template
View file @
e45c1eb1
...
@@ -14,9 +14,11 @@ aliSignName=xxx
...
@@ -14,9 +14,11 @@ aliSignName=xxx
aliTemplateCode=SMS_xxx
aliTemplateCode=SMS_xxx
# token
# token
TOKEN_KEY=xxx
TOKEN_KEY=xxx
# root key, 最高权限
ROOT_KEY=xxx
# openai
# openai
# OPENAI_BASE_URL=https://api.openai.com/v1
# OPENAI_BASE_URL=https://api.openai.com/v1
# OPENAI_BASE_URL_AUTH=可选的安全凭证
# OPENAI_BASE_URL_AUTH=可选的安全凭证
(不需要的时候,记得去掉)
OPENAIKEY=sk-xxx
OPENAIKEY=sk-xxx
GPT4KEY=sk-xxx
GPT4KEY=sk-xxx
# claude
# claude
...
...
src/pages/api/chat/delChatRecordByContentId.ts
View file @
e45c1eb1
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
,
Chat
}
from
'@/service/mongo'
;
import
{
connectToDatabase
,
Chat
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
)
{
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
)
{
try
{
try
{
...
@@ -14,7 +14,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
...
@@ -14,7 +14,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
await
connectToDatabase
();
await
connectToDatabase
();
// 凭证校验
// 凭证校验
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
const
chatRecord
=
await
Chat
.
findById
(
chatId
);
const
chatRecord
=
await
Chat
.
findById
(
chatId
);
...
...
src/pages/api/chat/getHistory.ts
View file @
e45c1eb1
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
,
Chat
}
from
'@/service/mongo'
;
import
{
connectToDatabase
,
Chat
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
/* 获取历史记录 */
/* 获取历史记录 */
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
)
{
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
)
{
try
{
try
{
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
connectToDatabase
();
await
connectToDatabase
();
...
...
src/pages/api/chat/init.ts
View file @
e45c1eb1
...
@@ -2,7 +2,7 @@ import type { NextApiRequest, NextApiResponse } from 'next';
...
@@ -2,7 +2,7 @@ import type { NextApiRequest, NextApiResponse } from 'next';
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
,
Chat
,
Model
}
from
'@/service/mongo'
;
import
{
connectToDatabase
,
Chat
,
Model
}
from
'@/service/mongo'
;
import
type
{
InitChatResponse
}
from
'@/api/response/chat'
;
import
type
{
InitChatResponse
}
from
'@/api/response/chat'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
import
{
ChatItemType
}
from
'@/types/chat'
;
import
{
ChatItemType
}
from
'@/types/chat'
;
import
{
authModel
}
from
'@/service/utils/auth'
;
import
{
authModel
}
from
'@/service/utils/auth'
;
import
mongoose
from
'mongoose'
;
import
mongoose
from
'mongoose'
;
...
@@ -12,7 +12,7 @@ import type { ModelSchema } from '@/types/mongoSchema';
...
@@ -12,7 +12,7 @@ import type { ModelSchema } from '@/types/mongoSchema';
/* 初始化我的聊天框,需要身份验证 */
/* 初始化我的聊天框,需要身份验证 */
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
)
{
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
)
{
try
{
try
{
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
let
{
modelId
,
chatId
}
=
req
.
query
as
{
modelId
:
''
|
string
;
chatId
:
''
|
string
};
let
{
modelId
,
chatId
}
=
req
.
query
as
{
modelId
:
''
|
string
;
chatId
:
''
|
string
};
...
...
src/pages/api/chat/removeHistory.ts
View file @
e45c1eb1
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
,
Chat
}
from
'@/service/mongo'
;
import
{
connectToDatabase
,
Chat
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
/* 获取历史记录 */
/* 获取历史记录 */
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
)
{
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
)
{
try
{
try
{
const
{
id
}
=
req
.
query
;
const
{
id
}
=
req
.
query
;
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
connectToDatabase
();
await
connectToDatabase
();
...
...
src/pages/api/chat/saveChat.ts
View file @
e45c1eb1
...
@@ -3,7 +3,7 @@ import { jsonRes } from '@/service/response';
...
@@ -3,7 +3,7 @@ import { jsonRes } from '@/service/response';
import
{
ChatItemType
}
from
'@/types/chat'
;
import
{
ChatItemType
}
from
'@/types/chat'
;
import
{
connectToDatabase
,
Chat
}
from
'@/service/mongo'
;
import
{
connectToDatabase
,
Chat
}
from
'@/service/mongo'
;
import
{
authModel
}
from
'@/service/utils/auth'
;
import
{
authModel
}
from
'@/service/utils/auth'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
import
mongoose
from
'mongoose'
;
import
mongoose
from
'mongoose'
;
/* 聊天内容存存储 */
/* 聊天内容存存储 */
...
@@ -20,7 +20,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
...
@@ -20,7 +20,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
throw
new
Error
(
'缺少参数'
);
throw
new
Error
(
'缺少参数'
);
}
}
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
connectToDatabase
();
await
connectToDatabase
();
...
...
src/pages/api/chat/shareChat/create.ts
View file @
e45c1eb1
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
,
ShareChat
}
from
'@/service/mongo'
;
import
{
connectToDatabase
,
ShareChat
}
from
'@/service/mongo'
;
import
{
authModel
,
auth
Token
}
from
'@/service/utils/auth'
;
import
{
authModel
,
auth
User
}
from
'@/service/utils/auth'
;
import
type
{
ShareChatEditType
}
from
'@/types/model'
;
import
type
{
ShareChatEditType
}
from
'@/types/model'
;
/* create a shareChat */
/* create a shareChat */
...
@@ -13,7 +13,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
...
@@ -13,7 +13,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
await
connectToDatabase
();
await
connectToDatabase
();
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
authModel
({
await
authModel
({
modelId
,
modelId
,
userId
,
userId
,
...
...
src/pages/api/chat/shareChat/delete.ts
View file @
e45c1eb1
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
,
ShareChat
}
from
'@/service/mongo'
;
import
{
connectToDatabase
,
ShareChat
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
/* delete a shareChat by shareChatId */
/* delete a shareChat by shareChatId */
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
)
{
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
)
{
...
@@ -12,7 +12,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
...
@@ -12,7 +12,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
await
connectToDatabase
();
await
connectToDatabase
();
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
ShareChat
.
findOneAndRemove
({
await
ShareChat
.
findOneAndRemove
({
_id
:
id
,
_id
:
id
,
...
...
src/pages/api/chat/shareChat/list.ts
View file @
e45c1eb1
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
,
ShareChat
}
from
'@/service/mongo'
;
import
{
connectToDatabase
,
ShareChat
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
import
{
hashPassword
}
from
'@/service/utils/tools'
;
import
{
hashPassword
}
from
'@/service/utils/tools'
;
/* get shareChat list by modelId */
/* get shareChat list by modelId */
...
@@ -13,7 +13,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
...
@@ -13,7 +13,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
await
connectToDatabase
();
await
connectToDatabase
();
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
const
data
=
await
ShareChat
.
find
({
const
data
=
await
ShareChat
.
find
({
modelId
,
modelId
,
...
...
src/pages/api/model/create.ts
View file @
e45c1eb1
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
}
from
'@/service/mongo'
;
import
{
connectToDatabase
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
import
{
ModelStatusEnum
}
from
'@/constants/model'
;
import
{
ModelStatusEnum
}
from
'@/constants/model'
;
import
{
Model
}
from
'@/service/models/model'
;
import
{
Model
}
from
'@/service/models/model'
;
...
@@ -17,7 +17,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
...
@@ -17,7 +17,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
}
}
// 凭证校验
// 凭证校验
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
connectToDatabase
();
await
connectToDatabase
();
...
...
src/pages/api/model/del.ts
View file @
e45c1eb1
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
Chat
,
Model
,
connectToDatabase
,
Collection
,
ShareChat
}
from
'@/service/mongo'
;
import
{
Chat
,
Model
,
connectToDatabase
,
Collection
,
ShareChat
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
import
{
authModel
}
from
'@/service/utils/auth'
;
import
{
authModel
}
from
'@/service/utils/auth'
;
/* 获取我的模型 */
/* 获取我的模型 */
...
@@ -14,7 +14,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
...
@@ -14,7 +14,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
}
}
// 凭证校验
// 凭证校验
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
connectToDatabase
();
await
connectToDatabase
();
...
...
src/pages/api/model/detail.tsx
View file @
e45c1eb1
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
}
from
'@/service/mongo'
;
import
{
connectToDatabase
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
import
{
authModel
}
from
'@/service/utils/auth'
;
import
{
authModel
}
from
'@/service/utils/auth'
;
/* 获取我的模型 */
/* 获取我的模型 */
...
@@ -14,7 +14,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
...
@@ -14,7 +14,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
}
}
// 凭证校验
// 凭证校验
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
connectToDatabase
();
await
connectToDatabase
();
...
...
src/pages/api/model/list.ts
View file @
e45c1eb1
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
,
Collection
,
Model
}
from
'@/service/mongo'
;
import
{
connectToDatabase
,
Collection
,
Model
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
import
type
{
ModelListResponse
}
from
'@/api/response/model'
;
import
type
{
ModelListResponse
}
from
'@/api/response/model'
;
/* 获取模型列表 */
/* 获取模型列表 */
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
<
any
>
)
{
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
<
any
>
)
{
try
{
try
{
// 凭证校验
// 凭证校验
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
connectToDatabase
();
await
connectToDatabase
();
...
...
src/pages/api/model/share/collection.ts
View file @
e45c1eb1
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
,
Collection
,
Model
}
from
'@/service/mongo'
;
import
{
connectToDatabase
,
Collection
,
Model
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
/* 模型收藏切换 */
/* 模型收藏切换 */
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
<
any
>
)
{
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
<
any
>
)
{
...
@@ -12,7 +12,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
...
@@ -12,7 +12,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
throw
new
Error
(
'缺少参数'
);
throw
new
Error
(
'缺少参数'
);
}
}
// 凭证校验
// 凭证校验
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
connectToDatabase
();
await
connectToDatabase
();
...
...
src/pages/api/model/share/getCollection.ts
View file @
e45c1eb1
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
,
Collection
}
from
'@/service/mongo'
;
import
{
connectToDatabase
,
Collection
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
import
type
{
ShareModelItem
}
from
'@/types/model'
;
import
type
{
ShareModelItem
}
from
'@/types/model'
;
/* 获取模型列表 */
/* 获取模型列表 */
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
<
any
>
)
{
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
<
any
>
)
{
try
{
try
{
// 凭证校验
// 凭证校验
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
connectToDatabase
();
await
connectToDatabase
();
...
...
src/pages/api/model/update.ts
View file @
e45c1eb1
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
}
from
'@/service/mongo'
;
import
{
connectToDatabase
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
import
{
Model
}
from
'@/service/models/model'
;
import
{
Model
}
from
'@/service/models/model'
;
import
type
{
ModelUpdateParams
}
from
'@/types/model'
;
import
type
{
ModelUpdateParams
}
from
'@/types/model'
;
import
{
authModel
}
from
'@/service/utils/auth'
;
import
{
authModel
}
from
'@/service/utils/auth'
;
...
@@ -17,7 +17,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
...
@@ -17,7 +17,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
}
}
// 凭证校验
// 凭证校验
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
connectToDatabase
();
await
connectToDatabase
();
...
...
src/pages/api/openapi/chat/chat.ts
View file @
e45c1eb1
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
connectToDatabase
}
from
'@/service/mongo'
;
import
{
connectToDatabase
}
from
'@/service/mongo'
;
import
{
auth
OpenApiKey
,
authModel
,
getApiKey
}
from
'@/service/utils/auth'
;
import
{
auth
User
,
authModel
,
getApiKey
}
from
'@/service/utils/auth'
;
import
{
modelServiceToolMap
,
resStreamResponse
}
from
'@/service/utils/chat'
;
import
{
modelServiceToolMap
,
resStreamResponse
}
from
'@/service/utils/chat'
;
import
{
ChatItemSimpleType
}
from
'@/types/chat'
;
import
{
ChatItemSimpleType
}
from
'@/types/chat'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
...
@@ -45,7 +45,7 @@ export default withNextCors(async function handler(req: NextApiRequest, res: Nex
...
@@ -45,7 +45,7 @@ export default withNextCors(async function handler(req: NextApiRequest, res: Nex
let
startTime
=
Date
.
now
();
let
startTime
=
Date
.
now
();
/* 凭证校验 */
/* 凭证校验 */
const
{
userId
}
=
await
auth
OpenApiKey
(
req
);
const
{
userId
}
=
await
auth
User
({
req
,
authOpenApi
:
true
}
);
const
{
model
}
=
await
authModel
({
const
{
model
}
=
await
authModel
({
userId
,
userId
,
...
...
src/pages/api/openapi/delKey.ts
View file @
e45c1eb1
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
,
OpenApi
}
from
'@/service/mongo'
;
import
{
connectToDatabase
,
OpenApi
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
)
{
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
)
{
try
{
try
{
...
@@ -12,7 +12,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
...
@@ -12,7 +12,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
throw
new
Error
(
'缺少参数'
);
throw
new
Error
(
'缺少参数'
);
}
}
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
connectToDatabase
();
await
connectToDatabase
();
...
...
src/pages/api/openapi/getKeys.ts
View file @
e45c1eb1
...
@@ -2,12 +2,12 @@
...
@@ -2,12 +2,12 @@
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
,
OpenApi
}
from
'@/service/mongo'
;
import
{
connectToDatabase
,
OpenApi
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
import
{
UserOpenApiKey
}
from
'@/types/openapi'
;
import
{
UserOpenApiKey
}
from
'@/types/openapi'
;
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
)
{
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
)
{
try
{
try
{
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
connectToDatabase
();
await
connectToDatabase
();
...
...
src/pages/api/openapi/kb/delDataById.ts
View file @
e45c1eb1
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
import
{
PgClient
}
from
'@/service/pg'
;
import
{
PgClient
}
from
'@/service/pg'
;
import
{
withNextCors
}
from
'@/service/utils/tools'
;
import
{
withNextCors
}
from
'@/service/utils/tools'
;
...
@@ -15,7 +15,7 @@ export default withNextCors(async function handler(req: NextApiRequest, res: Nex
...
@@ -15,7 +15,7 @@ export default withNextCors(async function handler(req: NextApiRequest, res: Nex
}
}
// 凭证校验
// 凭证校验
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
PgClient
.
delete
(
'modelData'
,
{
await
PgClient
.
delete
(
'modelData'
,
{
where
:
[[
'user_id'
,
userId
],
'AND'
,
[
'id'
,
dataId
]]
where
:
[[
'user_id'
,
userId
],
'AND'
,
[
'id'
,
dataId
]]
...
...
src/pages/api/openapi/kb/pushData.ts
View file @
e45c1eb1
...
@@ -2,7 +2,7 @@ import type { NextApiRequest, NextApiResponse } from 'next';
...
@@ -2,7 +2,7 @@ import type { NextApiRequest, NextApiResponse } from 'next';
import
type
{
KbDataItemType
}
from
'@/types/plugin'
;
import
type
{
KbDataItemType
}
from
'@/types/plugin'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
}
from
'@/service/mongo'
;
import
{
connectToDatabase
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
import
{
generateVector
}
from
'@/service/events/generateVector'
;
import
{
generateVector
}
from
'@/service/events/generateVector'
;
import
{
PgClient
}
from
'@/service/pg'
;
import
{
PgClient
}
from
'@/service/pg'
;
import
{
authKb
}
from
'@/service/utils/auth'
;
import
{
authKb
}
from
'@/service/utils/auth'
;
...
@@ -24,11 +24,11 @@ export default withNextCors(async function handler(req: NextApiRequest, res: Nex
...
@@ -24,11 +24,11 @@ export default withNextCors(async function handler(req: NextApiRequest, res: Nex
throw
new
Error
(
'缺少参数'
);
throw
new
Error
(
'缺少参数'
);
}
}
// 凭证校验
const
userId
=
await
authToken
(
req
);
await
connectToDatabase
();
await
connectToDatabase
();
// 凭证校验
const
{
userId
}
=
await
authUser
({
req
});
await
authKb
({
await
authKb
({
userId
,
userId
,
kbId
kbId
...
...
src/pages/api/openapi/kb/updateData.ts
View file @
e45c1eb1
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
import
{
ModelDataStatusEnum
}
from
'@/constants/model'
;
import
{
ModelDataStatusEnum
}
from
'@/constants/model'
;
import
{
generateVector
}
from
'@/service/events/generateVector'
;
import
{
generateVector
}
from
'@/service/events/generateVector'
;
import
{
PgClient
}
from
'@/service/pg'
;
import
{
PgClient
}
from
'@/service/pg'
;
...
@@ -15,7 +15,7 @@ export default withNextCors(async function handler(req: NextApiRequest, res: Nex
...
@@ -15,7 +15,7 @@ export default withNextCors(async function handler(req: NextApiRequest, res: Nex
}
}
// 凭证校验
// 凭证校验
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
// 更新 pg 内容.仅修改a,不需要更新向量。
// 更新 pg 内容.仅修改a,不需要更新向量。
await
PgClient
.
update
(
'modelData'
,
{
await
PgClient
.
update
(
'modelData'
,
{
...
...
src/pages/api/openapi/postKey.ts
View file @
e45c1eb1
...
@@ -2,13 +2,13 @@
...
@@ -2,13 +2,13 @@
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
,
OpenApi
}
from
'@/service/mongo'
;
import
{
connectToDatabase
,
OpenApi
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
import
{
customAlphabet
}
from
'nanoid'
;
import
{
customAlphabet
}
from
'nanoid'
;
const
nanoid
=
customAlphabet
(
'abcdefghijklmnopqrstuvwxyz1234567890'
);
const
nanoid
=
customAlphabet
(
'abcdefghijklmnopqrstuvwxyz1234567890'
);
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
)
{
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
)
{
try
{
try
{
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
connectToDatabase
();
await
connectToDatabase
();
...
...
src/pages/api/openapi/text/splitText.ts
View file @
e45c1eb1
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
,
SplitData
}
from
'@/service/mongo'
;
import
{
connectToDatabase
,
SplitData
}
from
'@/service/mongo'
;
import
{
authKb
,
auth
Token
}
from
'@/service/utils/auth'
;
import
{
authKb
,
auth
User
}
from
'@/service/utils/auth'
;
import
{
generateVector
}
from
'@/service/events/generateVector'
;
import
{
generateVector
}
from
'@/service/events/generateVector'
;
import
{
generateQA
}
from
'@/service/events/generateQA'
;
import
{
generateQA
}
from
'@/service/events/generateQA'
;
import
{
PgClient
}
from
'@/service/pg'
;
import
{
PgClient
}
from
'@/service/pg'
;
...
@@ -22,7 +22,7 @@ export default withNextCors(async function handler(req: NextApiRequest, res: Nex
...
@@ -22,7 +22,7 @@ export default withNextCors(async function handler(req: NextApiRequest, res: Nex
}
}
await
connectToDatabase
();
await
connectToDatabase
();
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
// 验证是否是该用户的 model
// 验证是否是该用户的 model
await
authKb
({
await
authKb
({
...
...
src/pages/api/plugins/kb/create.ts
View file @
e45c1eb1
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
,
KB
}
from
'@/service/mongo'
;
import
{
connectToDatabase
,
KB
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
<
any
>
)
{
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
<
any
>
)
{
try
{
try
{
...
@@ -15,7 +15,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
...
@@ -15,7 +15,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
}
}
// 凭证校验
// 凭证校验
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
connectToDatabase
();
await
connectToDatabase
();
...
...
src/pages/api/plugins/kb/data/exportModelData.ts
View file @
e45c1eb1
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
}
from
'@/service/mongo'
;
import
{
connectToDatabase
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
import
{
PgClient
}
from
'@/service/pg'
;
import
{
PgClient
}
from
'@/service/pg'
;
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
<
any
>
)
{
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
<
any
>
)
{
...
@@ -15,7 +15,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
...
@@ -15,7 +15,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
}
}
// 凭证校验
// 凭证校验
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
connectToDatabase
();
await
connectToDatabase
();
...
...
src/pages/api/plugins/kb/data/getDataList.ts
View file @
e45c1eb1
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
}
from
'@/service/mongo'
;
import
{
connectToDatabase
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
import
{
PgClient
}
from
'@/service/pg'
;
import
{
PgClient
}
from
'@/service/pg'
;
import
type
{
PgKBDataItemType
}
from
'@/types/pg'
;
import
type
{
PgKBDataItemType
}
from
'@/types/pg'
;
...
@@ -23,7 +23,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
...
@@ -23,7 +23,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
}
}
// 凭证校验
// 凭证校验
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
connectToDatabase
();
await
connectToDatabase
();
...
...
src/pages/api/plugins/kb/data/getTrainingData.ts
View file @
e45c1eb1
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
,
SplitData
,
Model
}
from
'@/service/mongo'
;
import
{
connectToDatabase
,
SplitData
,
Model
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
import
{
ModelDataStatusEnum
}
from
'@/constants/model'
;
import
{
ModelDataStatusEnum
}
from
'@/constants/model'
;
import
{
PgClient
}
from
'@/service/pg'
;
import
{
PgClient
}
from
'@/service/pg'
;
...
@@ -14,7 +14,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
...
@@ -14,7 +14,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
}
}
await
connectToDatabase
();
await
connectToDatabase
();
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
// split queue data
// split queue data
const
data
=
await
SplitData
.
find
({
const
data
=
await
SplitData
.
find
({
...
...
src/pages/api/plugins/kb/delete.ts
View file @
e45c1eb1
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
,
KB
}
from
'@/service/mongo'
;
import
{
connectToDatabase
,
KB
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
import
{
PgClient
}
from
'@/service/pg'
;
import
{
PgClient
}
from
'@/service/pg'
;
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
<
any
>
)
{
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
<
any
>
)
{
...
@@ -15,7 +15,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
...
@@ -15,7 +15,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
}
}
// 凭证校验
// 凭证校验
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
connectToDatabase
();
await
connectToDatabase
();
...
...
src/pages/api/plugins/kb/detail.ts
View file @
e45c1eb1
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
,
KB
}
from
'@/service/mongo'
;
import
{
connectToDatabase
,
KB
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
<
any
>
)
{
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
<
any
>
)
{
try
{
try
{
...
@@ -14,7 +14,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
...
@@ -14,7 +14,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
}
}
// 凭证校验
// 凭证校验
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
connectToDatabase
();
await
connectToDatabase
();
...
...
src/pages/api/plugins/kb/list.ts
View file @
e45c1eb1
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
,
KB
}
from
'@/service/mongo'
;
import
{
connectToDatabase
,
KB
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
import
{
PgClient
}
from
'@/service/pg'
;
import
{
PgClient
}
from
'@/service/pg'
;
import
{
KbItemType
}
from
'@/types/plugin'
;
import
{
KbItemType
}
from
'@/types/plugin'
;
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
<
any
>
)
{
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
<
any
>
)
{
try
{
try
{
// 凭证校验
// 凭证校验
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
connectToDatabase
();
await
connectToDatabase
();
...
...
src/pages/api/plugins/kb/update.ts
View file @
e45c1eb1
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
,
KB
}
from
'@/service/mongo'
;
import
{
connectToDatabase
,
KB
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
import
type
{
KbUpdateParams
}
from
'@/api/plugins/kb'
;
import
type
{
KbUpdateParams
}
from
'@/api/plugins/kb'
;
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
<
any
>
)
{
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
<
any
>
)
{
...
@@ -13,7 +13,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
...
@@ -13,7 +13,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
}
}
// 凭证校验
// 凭证校验
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
connectToDatabase
();
await
connectToDatabase
();
...
...
src/pages/api/user/checkPayResult.ts
View file @
e45c1eb1
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
,
User
,
Pay
}
from
'@/service/mongo'
;
import
{
connectToDatabase
,
User
,
Pay
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
import
{
PaySchema
,
UserModelSchema
}
from
'@/types/mongoSchema'
;
import
{
PaySchema
,
UserModelSchema
}
from
'@/types/mongoSchema'
;
import
dayjs
from
'dayjs'
;
import
dayjs
from
'dayjs'
;
import
{
getPayResult
}
from
'@/service/utils/wxpay'
;
import
{
getPayResult
}
from
'@/service/utils/wxpay'
;
...
@@ -13,7 +13,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
...
@@ -13,7 +13,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
try
{
try
{
let
{
payId
}
=
req
.
query
as
{
payId
:
string
};
let
{
payId
}
=
req
.
query
as
{
payId
:
string
};
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
connectToDatabase
();
await
connectToDatabase
();
...
...
src/pages/api/user/getBill.ts
View file @
e45c1eb1
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
,
Bill
}
from
'@/service/mongo'
;
import
{
connectToDatabase
,
Bill
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
import
type
{
BillSchema
}
from
'@/types/mongoSchema'
;
import
type
{
BillSchema
}
from
'@/types/mongoSchema'
;
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
)
{
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
)
{
...
@@ -12,7 +12,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
...
@@ -12,7 +12,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
pageNum
=
+
pageNum
;
pageNum
=
+
pageNum
;
pageSize
=
+
pageSize
;
pageSize
=
+
pageSize
;
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
connectToDatabase
();
await
connectToDatabase
();
...
...
src/pages/api/user/getPayCode.ts
View file @
e45c1eb1
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
import
{
customAlphabet
}
from
'nanoid'
;
import
{
customAlphabet
}
from
'nanoid'
;
import
{
connectToDatabase
,
Pay
}
from
'@/service/mongo'
;
import
{
connectToDatabase
,
Pay
}
from
'@/service/mongo'
;
import
{
PRICE_SCALE
}
from
'@/constants/common'
;
import
{
PRICE_SCALE
}
from
'@/constants/common'
;
...
@@ -14,7 +14,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
...
@@ -14,7 +14,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
let
{
amount
=
0
}
=
req
.
query
as
{
amount
:
string
};
let
{
amount
=
0
}
=
req
.
query
as
{
amount
:
string
};
amount
=
+
amount
;
amount
=
+
amount
;
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
const
id
=
nanoid
();
const
id
=
nanoid
();
await
connectToDatabase
();
await
connectToDatabase
();
...
...
src/pages/api/user/getPayOrders.ts
View file @
e45c1eb1
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
import
{
connectToDatabase
,
Pay
}
from
'@/service/mongo'
;
import
{
connectToDatabase
,
Pay
}
from
'@/service/mongo'
;
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
)
{
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
)
{
try
{
try
{
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
connectToDatabase
();
await
connectToDatabase
();
...
...
src/pages/api/user/promotion/getPromotionData.ts
View file @
e45c1eb1
...
@@ -2,12 +2,12 @@
...
@@ -2,12 +2,12 @@
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
,
User
,
promotionRecord
}
from
'@/service/mongo'
;
import
{
connectToDatabase
,
User
,
promotionRecord
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
import
mongoose
from
'mongoose'
;
import
mongoose
from
'mongoose'
;
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
)
{
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
)
{
try
{
try
{
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
connectToDatabase
();
await
connectToDatabase
();
...
...
src/pages/api/user/promotion/getPromotions.ts
View file @
e45c1eb1
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
type
{
NextApiRequest
,
NextApiResponse
}
from
'next'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
,
promotionRecord
}
from
'@/service/mongo'
;
import
{
connectToDatabase
,
promotionRecord
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
)
{
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
)
{
try
{
try
{
...
@@ -10,7 +10,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
...
@@ -10,7 +10,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
pageNum
=
+
pageNum
;
pageNum
=
+
pageNum
;
pageSize
=
+
pageSize
;
pageSize
=
+
pageSize
;
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
connectToDatabase
();
await
connectToDatabase
();
...
...
src/pages/api/user/tokenLogin.ts
View file @
e45c1eb1
...
@@ -3,11 +3,11 @@ import type { NextApiRequest, NextApiResponse } from 'next';
...
@@ -3,11 +3,11 @@ import type { NextApiRequest, NextApiResponse } from 'next';
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
connectToDatabase
}
from
'@/service/mongo'
;
import
{
connectToDatabase
}
from
'@/service/mongo'
;
import
{
User
}
from
'@/service/models/user'
;
import
{
User
}
from
'@/service/models/user'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
)
{
export
default
async
function
handler
(
req
:
NextApiRequest
,
res
:
NextApiResponse
)
{
try
{
try
{
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
connectToDatabase
();
await
connectToDatabase
();
...
...
src/pages/api/user/update.ts
View file @
e45c1eb1
...
@@ -3,7 +3,7 @@ import type { NextApiRequest, NextApiResponse } from 'next';
...
@@ -3,7 +3,7 @@ import type { NextApiRequest, NextApiResponse } from 'next';
import
{
jsonRes
}
from
'@/service/response'
;
import
{
jsonRes
}
from
'@/service/response'
;
import
{
User
}
from
'@/service/models/user'
;
import
{
User
}
from
'@/service/models/user'
;
import
{
connectToDatabase
}
from
'@/service/mongo'
;
import
{
connectToDatabase
}
from
'@/service/mongo'
;
import
{
auth
Token
}
from
'@/service/utils/auth'
;
import
{
auth
User
}
from
'@/service/utils/auth'
;
import
{
UserUpdateParams
}
from
'@/types/user'
;
import
{
UserUpdateParams
}
from
'@/types/user'
;
/* 更新一些基本信息 */
/* 更新一些基本信息 */
...
@@ -11,7 +11,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
...
@@ -11,7 +11,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
try
{
try
{
const
{
openaiKey
,
avatar
}
=
req
.
body
as
UserUpdateParams
;
const
{
openaiKey
,
avatar
}
=
req
.
body
as
UserUpdateParams
;
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
await
connectToDatabase
();
await
connectToDatabase
();
// 更新对应的记录
// 更新对应的记录
...
...
src/service/utils/auth.ts
View file @
e45c1eb1
import
type
{
NextApiRequest
}
from
'next'
;
import
type
{
NextApiRequest
}
from
'next'
;
import
jwt
from
'jsonwebtoken'
;
import
jwt
from
'jsonwebtoken'
;
import
c
ookie
from
'cookie'
;
import
C
ookie
from
'cookie'
;
import
{
Chat
,
Model
,
OpenApi
,
User
,
ShareChat
,
KB
}
from
'../mongo'
;
import
{
Chat
,
Model
,
OpenApi
,
User
,
ShareChat
,
KB
}
from
'../mongo'
;
import
type
{
ModelSchema
}
from
'@/types/mongoSchema'
;
import
type
{
ModelSchema
}
from
'@/types/mongoSchema'
;
import
type
{
ChatItemSimpleType
}
from
'@/types/chat'
;
import
type
{
ChatItemSimpleType
}
from
'@/types/chat'
;
...
@@ -11,29 +11,100 @@ import { ERROR_ENUM } from '../errorCode';
...
@@ -11,29 +11,100 @@ import { ERROR_ENUM } from '../errorCode';
import
{
ChatModelType
,
OpenAiChatEnum
}
from
'@/constants/model'
;
import
{
ChatModelType
,
OpenAiChatEnum
}
from
'@/constants/model'
;
import
{
hashPassword
}
from
'@/service/utils/tools'
;
import
{
hashPassword
}
from
'@/service/utils/tools'
;
/* 校验 token */
/* uniform auth user */
export
const
authToken
=
(
req
:
NextApiRequest
):
Promise
<
string
>
=>
{
export
const
authUser
=
async
({
return
new
Promise
((
resolve
,
reject
)
=>
{
req
,
// 获取 cookie
userId
=
''
,
const
cookies
=
cookie
.
parse
(
req
.
headers
.
cookie
||
''
);
authToken
=
false
,
const
token
=
cookies
.
token
;
authOpenApi
=
false
,
authRoot
=
false
}:
{
req
:
NextApiRequest
;
userId
?:
string
;
authToken
?:
boolean
;
authOpenApi
?:
boolean
;
authRoot
?:
boolean
;
})
=>
{
const
parseCookie
=
(
cookie
?:
string
):
Promise
<
string
>
=>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
// 获取 cookie
const
cookies
=
Cookie
.
parse
(
cookie
||
''
);
const
token
=
cookies
.
token
;
if
(
!
token
)
{
if
(
!
token
)
{
return
reject
(
ERROR_ENUM
.
unAuthorization
);
return
reject
(
ERROR_ENUM
.
unAuthorization
);
}
}
const
key
=
process
.
env
.
TOKEN_KEY
as
string
;
const
key
=
process
.
env
.
TOKEN_KEY
as
string
;
jwt
.
verify
(
token
,
key
,
function
(
err
,
decoded
:
any
)
{
jwt
.
verify
(
token
,
key
,
function
(
err
,
decoded
:
any
)
{
if
(
err
||
!
decoded
?.
userId
)
{
if
(
err
||
!
decoded
?.
userId
)
{
reject
(
ERROR_ENUM
.
unAuthorization
);
reject
(
ERROR_ENUM
.
unAuthorization
);
return
;
return
;
}
}
resolve
(
decoded
.
userId
);
resolve
(
decoded
.
userId
);
});
});
});
});
};
const
parseOpenApiKey
=
async
(
apiKey
?:
string
)
=>
{
if
(
!
apiKey
)
{
return
Promise
.
reject
(
ERROR_ENUM
.
unAuthorization
);
}
try
{
const
openApi
=
await
OpenApi
.
findOne
({
apiKey
});
if
(
!
openApi
)
{
return
Promise
.
reject
(
ERROR_ENUM
.
unAuthorization
);
}
const
userId
=
String
(
openApi
.
userId
);
// 更新使用的时间
await
OpenApi
.
findByIdAndUpdate
(
openApi
.
_id
,
{
lastUsedTime
:
new
Date
()
});
return
userId
;
}
catch
(
error
)
{
return
Promise
.
reject
(
error
);
}
};
const
parseRootKey
=
async
(
rootKey
?:
string
)
=>
{
if
(
!
rootKey
||
!
process
.
env
.
ROOT_KEY
||
rootKey
!==
process
.
env
.
ROOT_KEY
)
{
return
Promise
.
reject
(
ERROR_ENUM
.
unAuthorization
);
}
return
userId
;
};
const
{
cookie
,
apikey
,
rootkey
}
=
(
req
.
headers
||
{})
as
{
cookie
?:
string
;
apikey
?:
string
;
rootkey
?:
string
;
};
let
uid
=
''
;
if
(
authToken
)
{
uid
=
await
parseCookie
(
cookie
);
}
else
if
(
authOpenApi
)
{
uid
=
await
parseOpenApiKey
(
apikey
);
}
else
if
(
authRoot
)
{
uid
=
await
parseRootKey
(
rootkey
);
}
else
if
(
cookie
)
{
uid
=
await
parseCookie
(
cookie
);
}
else
if
(
apikey
)
{
uid
=
await
parseOpenApiKey
(
apikey
);
}
else
if
(
rootkey
)
{
uid
=
await
parseRootKey
(
rootkey
);
}
else
{
return
Promise
.
reject
(
ERROR_ENUM
.
unAuthorization
);
}
return
{
userId
:
uid
};
};
};
/* random get openai api key */
export
const
getOpenAiKey
=
()
=>
{
export
const
getOpenAiKey
=
()
=>
{
// 纯字符串类型
// 纯字符串类型
const
keys
=
process
.
env
.
OPENAIKEY
?.
split
(
','
)
||
[];
const
keys
=
process
.
env
.
OPENAIKEY
?.
split
(
','
)
||
[];
...
@@ -158,7 +229,7 @@ export const authChat = async ({
...
@@ -158,7 +229,7 @@ export const authChat = async ({
chatId
:
''
|
string
;
chatId
:
''
|
string
;
req
:
NextApiRequest
;
req
:
NextApiRequest
;
})
=>
{
})
=>
{
const
userId
=
await
authToken
(
req
);
const
{
userId
}
=
await
authUser
({
req
,
authToken
:
true
}
);
// 获取 model 数据
// 获取 model 数据
const
{
model
,
showModelDetail
}
=
await
authModel
({
const
{
model
,
showModelDetail
}
=
await
authModel
({
...
@@ -249,31 +320,3 @@ export const authShareChat = async ({
...
@@ -249,31 +320,3 @@ export const authShareChat = async ({
showModelDetail
showModelDetail
};
};
};
};
/* 校验 open api key */
export
const
authOpenApiKey
=
async
(
req
:
NextApiRequest
)
=>
{
const
{
apikey
:
apiKey
}
=
req
.
headers
;
if
(
!
apiKey
)
{
return
Promise
.
reject
(
ERROR_ENUM
.
unAuthorization
);
}
try
{
const
openApi
=
await
OpenApi
.
findOne
({
apiKey
});
if
(
!
openApi
)
{
return
Promise
.
reject
(
ERROR_ENUM
.
unAuthorization
);
}
const
userId
=
String
(
openApi
.
userId
);
// 更新使用的时间
await
OpenApi
.
findByIdAndUpdate
(
openApi
.
_id
,
{
lastUsedTime
:
new
Date
()
});
return
{
userId
};
}
catch
(
error
)
{
return
Promise
.
reject
(
error
);
}
};
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment