重构 JWKS 模块,新增 JWKS 管理器,优化密钥生成与管理逻辑,更新路由处理

This commit is contained in:
2026-02-12 21:11:16 +08:00
parent 3cca0720c1
commit bb8ce3338d
7 changed files with 184 additions and 39 deletions

View File

@@ -1,31 +0,0 @@
import http from 'node:http';
import { router } from './router.ts';
import './index.ts';
import { handleRequest as PageProxy } from './page-proxy.ts';
const simpleAppsPrefixs = [
"/api/wxmsg"
];
export const handleRequest = async (req: http.IncomingMessage, res: http.ServerResponse) => {
if (req.url?.startsWith('/api/router')) {
// router自己管理
return;
}
// if (req.url === '/MP_verify_NGWvli5lGpEkByyt.txt') {
// res.writeHead(200, { 'Content-Type': 'text/plain' });
// res.end('NGWvli5lGpEkByyt');
// return;
// }
if (req.url && simpleAppsPrefixs.some(prefix => req.url!.startsWith(prefix))) {
// 简单应用路由处理
// 设置跨域
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST');
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization');
return router.parse(req, res);
}
// 其他请求交给页面代理处理
return PageProxy(req, res);
};

View File

@@ -0,0 +1,33 @@
import http from 'node:http';
import { router } from './router.ts';
import { handleRequest as PageProxy } from './page-proxy.ts';
import './routes/jwks.ts'
const simpleAppsPrefixs = [
"/api/wxmsg",
"/api/convex/"
];
export const handleRequest = async (req: http.IncomingMessage, res: http.ServerResponse) => {
if (req.url?.startsWith('/api/router')) {
// router自己管理
return;
}
// if (req.url === '/MP_verify_NGWvli5lGpEkByyt.txt') {
// res.writeHead(200, { 'Content-Type': 'text/plain' });
// res.end('NGWvli5lGpEkByyt');
// return;
// }
if (req.url && simpleAppsPrefixs.some(prefix => req.url!.startsWith(prefix))) {
// 简单应用路由处理
// 设置跨域
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST');
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization');
return router.parse(req, res);
}
// 其他请求交给页面代理处理
return PageProxy(req, res);
};

View File

@@ -0,0 +1,18 @@
import { router } from '@/app.ts'
import { manager } from '@/modules/jwks/index.ts'
router.all('/api/convex/jwks.json', async (req, res) => {
const jwks = await manager.getJWKS()
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify(jwks));
})
// rsync -avz kevisual:/root/kevisual/assistant-app/storage/jwks/ ./storage/jwks
// router.all('/api/convex/sign', async (req, res) => {
// const payload = {
// sub: 'abc'
// };
// const token = await manager.sign(payload);
// res.setHeader('Content-Type', 'application/json');
// res.end(JSON.stringify({ token }));
// });