File size: 1,115 Bytes
7fc5208 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
import { verifyToken } from './jwt.js';
/**
* 认证中间件
* @param request 请求对象
* @param env 环境变量
* @param requestId 请求ID
* @returns 如果认证失败返回错误响应,否则返回 null
*/
export async function authMiddleware(request: Request, env: Env): Promise<Response | null> {
const isValid = await verifyToken(request, env.JWT_SECRET);
if (!isValid) {
return new Response(
JSON.stringify({ error: 'Unauthorized' }),
{
status: 401,
headers: { 'Content-Type': 'application/json' }
}
);
}
return null;
}
export async function authApiToken(request: Request, env: Env): Promise<Response | null> {
// 验证API令牌
const authHeader = request.headers.get('Authorization');
if (authHeader !== `Bearer ${env.API_TOKEN}`) {
return new Response(
JSON.stringify({ error: 'Unauthorized' }),
{
status: 401,
headers: { 'Content-Type': 'application/json' }
}
);
}
return null;
}
|