feat: 完善鉴权
This commit is contained in:
+1
-18
@@ -1,10 +1,4 @@
|
||||
// server/api/stats.get.ts - 服务运行统计接口
|
||||
import { setResponseStatus } from "h3";
|
||||
|
||||
import {
|
||||
invalidAccessTokenResponse,
|
||||
verifyAccessToken
|
||||
} from "~~/server/utils/accessToken";
|
||||
import { createApiLogger } from "~~/server/utils/logging";
|
||||
import { getRuntimeStats } from "~~/server/utils/runtimeState";
|
||||
|
||||
@@ -12,21 +6,10 @@ import { getRuntimeStats } from "~~/server/utils/runtimeState";
|
||||
* 运行统计接口
|
||||
*
|
||||
* 统计信息包含 uptime、模型名、缓存数量、最近问答记录数量
|
||||
* 因为它能反映服务使用情况,所以和旧 Python 服务一样走可选 ACCESS_TOKEN 校验
|
||||
* 必须携带有效 session cookie(由 api-auth middleware 统一鉴权)
|
||||
*/
|
||||
export default defineEventHandler((event) => {
|
||||
const logger = createApiLogger(event, "api.stats");
|
||||
|
||||
// 未配置 ACCESS_TOKEN 时 verifyAccessToken 会放行;配置后必须携带正确 token
|
||||
if (!verifyAccessToken(event)) {
|
||||
setResponseStatus(event, 403);
|
||||
logger.warn("invalid_access_token");
|
||||
return {
|
||||
success: false,
|
||||
message: invalidAccessTokenResponse().msg
|
||||
};
|
||||
}
|
||||
|
||||
// getRuntimeStats 会实时清理过期缓存,再返回有效缓存数量
|
||||
logger.info("finish_success");
|
||||
return getRuntimeStats();
|
||||
|
||||
Reference in New Issue
Block a user