Estoy usando AWS CDK para ejecutar una API RESTful y recibo el siguiente error de verificación previa al llamar a un punto de POST :
El acceso para buscar en 'http://localhost:4000/login' desde el origen 'http://localhost:3000' ha sido bloqueado por la política de CORS: la respuesta a la solicitud de verificación previa no pasa la verificación de control de acceso: el valor de ' El encabezado Access-Control-Allow-Origin' en la respuesta no debe ser el comodín '*' cuando el modo de credenciales de la solicitud es 'incluir'.
Entiendo que el mensaje dice que no debería usar un comodín para el encabezado de origen permitido, pero no creo que lo esté haciendo. Aquí está mi configuración de CDK para la API:
const api = new RestApi(this, 'frontend-api', { restApiName: 'Frontend Service', description: 'This service serves the frontend.' defaultCorsPreflightOptions: { allowOrigins: [process.env.FRONTEND_URL], allowCredentials: true } }); const loginLambda = new NodejsFunction(this, 'loginFunction', { entry: 'dist/src/lambda/login.js', functionName: 'login', }); const loginIntegration = new LambdaIntegration(loginLambda); const loginResource = api.root.addResource('login'); loginResource.addMethod('POST', loginIntegration);Aquí está el resoler lambda de inicio de sesión
export const handler = async (event: any, context: any) => { return { statusCode: 200, body: JSON.stringify({ success: true }), headers: { 'Access-Control-Allow-Origin': [process.env.FRONTEND_URL], 'Access-Control-Allow-Credentials': 'true', 'Set-Cookie': serialize( 'auth', 'test', { httpOnly: true, expires: 'Sat, 21 Oct 2023 07:28:00 GMT' } ) } }; } Como puede ver, no estoy configurando el origen en * , por lo que no estoy seguro de por qué me está dando el error anterior.
Solo como nota, estoy ejecutando mis funciones lambda localmente usando sam local start-api ; no estoy seguro de si esto podría afectar la respuesta de OPTIONS .