diff --git a/config/oauth.js b/config/oauth.js index d99e38c..8e38584 100644 --- a/config/oauth.js +++ b/config/oauth.js @@ -18,9 +18,9 @@ export const oauthProviders = { zerocat: { clientId: process.env.ZEROCAT_CLIENT_ID, clientSecret: process.env.ZEROCAT_CLIENT_SECRET, - authorizationURL: "https://zerocat-api.houlangs.com/oauth/authorize", - tokenURL: "https://zerocat-api.houlangs.com/oauth/token", - userInfoURL: "https://zerocat-api.houlangs.com/oauth/userinfo", + authorizationURL: "https://zerocat-api.houlang.cloud/oauth/authorize", + tokenURL: "https://zerocat-api.houlang.cloud/oauth/token", + userInfoURL: "https://zerocat-api.houlang.cloud/oauth/userinfo", scope: "user:basic user:email", // 展示相关 name: "ZeroCat", diff --git a/routes/apps.js b/routes/apps.js index be79535..52460f1 100644 --- a/routes/apps.js +++ b/routes/apps.js @@ -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 * 更新令牌的备注信息 diff --git a/utils/socket.js b/utils/socket.js index 6812522..5e95281 100644 --- a/utils/socket.js +++ b/utils/socket.js @@ -245,7 +245,7 @@ export function initSocket(server) { senderInfo: { appId: tokenInfo?.appId, deviceType: tokenInfo?.deviceType, - deviceName: tokenInfo?.deviceName, + deviceName: tokenInfo?.note, isReadOnly: tokenInfo?.isReadOnly || false, note: tokenInfo?.note }