重构 JWKS 模块,新增 JWKS 管理器,优化密钥生成与管理逻辑,更新路由处理
This commit is contained in:
@@ -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);
|
||||
};
|
||||
@@ -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);
|
||||
};
|
||||
|
||||
18
src/routes-simple/routes/jwks.ts
Normal file
18
src/routes-simple/routes/jwks.ts
Normal 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 }));
|
||||
// });
|
||||
Reference in New Issue
Block a user