1
1
mirror of https://github.com/ZeroCatDev/ClassworksKV.git synced 2026-02-03 23:23:10 +00:00

feat: 更新OAuth提供者的URL,添加设置教师名称的API接口,修改Socket信息字段

This commit is contained in:
Sunwuyuan 2026-01-11 15:37:45 +08:00
parent 8e3b3df1ae
commit 31aac06f3f
No known key found for this signature in database
GPG Key ID: A6A54CF66F56BB64
3 changed files with 52 additions and 4 deletions

View File

@ -18,9 +18,9 @@ export const oauthProviders = {
zerocat: { zerocat: {
clientId: process.env.ZEROCAT_CLIENT_ID, clientId: process.env.ZEROCAT_CLIENT_ID,
clientSecret: process.env.ZEROCAT_CLIENT_SECRET, clientSecret: process.env.ZEROCAT_CLIENT_SECRET,
authorizationURL: "https://zerocat-api.houlangs.com/oauth/authorize", authorizationURL: "https://zerocat-api.houlang.cloud/oauth/authorize",
tokenURL: "https://zerocat-api.houlangs.com/oauth/token", tokenURL: "https://zerocat-api.houlang.cloud/oauth/token",
userInfoURL: "https://zerocat-api.houlangs.com/oauth/userinfo", userInfoURL: "https://zerocat-api.houlang.cloud/oauth/userinfo",
scope: "user:basic user:email", scope: "user:basic user:email",
// 展示相关 // 展示相关
name: "ZeroCat", name: "ZeroCat",

View File

@ -338,6 +338,54 @@ router.post(
}) })
); );
/**
* POST /apps/tokens/:token/set-teacher-name
* 设置教师名称 (仅限教师类型的 token)
* Body: { name: string }
*/
router.post(
"/tokens/:token/set-teacher-name",
errors.catchAsync(async (req, res, next) => {
const {token} = req.params;
const {name} = req.body;
if (!name) {
return next(errors.createError(400, "需要提供教师名称"));
}
// 查找 token 对应的应用安装记录
const appInstall = await prisma.appInstall.findUnique({
where: {token},
include: {
device: true,
},
});
if (!appInstall) {
return next(errors.createError(404, "Token 不存在"));
}
// 验证 token 类型是否为 teacher
if (appInstall.deviceType !== 'teacher') {
return next(errors.createError(403, "只有教师类型的 token 可以使用此接口"));
}
// 更新 AppInstall 的 note 字段为教师名称
const updatedInstall = await prisma.appInstall.update({
where: {id: appInstall.id},
data: {note: name},
});
return res.json({
success: true,
token: updatedInstall.token,
name: updatedInstall.note,
deviceType: updatedInstall.deviceType,
updatedAt: updatedInstall.updatedAt,
});
})
);
/** /**
* PUT /apps/tokens/:token/note * PUT /apps/tokens/:token/note
* 更新令牌的备注信息 * 更新令牌的备注信息

View File

@ -245,7 +245,7 @@ export function initSocket(server) {
senderInfo: { senderInfo: {
appId: tokenInfo?.appId, appId: tokenInfo?.appId,
deviceType: tokenInfo?.deviceType, deviceType: tokenInfo?.deviceType,
deviceName: tokenInfo?.deviceName, deviceName: tokenInfo?.note,
isReadOnly: tokenInfo?.isReadOnly || false, isReadOnly: tokenInfo?.isReadOnly || false,
note: tokenInfo?.note note: tokenInfo?.note
} }