Intercambio de recursos Cross Origin con credenciales

Tengo un formulario de autenticación común en múltiples subdominios (example.com, blog.example.com y app.example.com). El formulario de inicio de sesión debe enviar esta información a example.com independientemente de dónde se muestre, así que pensé en usar CORS, pero esto:

header("Access-Control-Allow-Origin: http://example.com http://blog.example.com http://app.example.com") 

No funciona

Así que pensé en hacer lo siguiente, y verificar manualmente el encabezado Origen en el lado del servidor, y permitir un Access-Control-Allow-Origin: * para que se puedan realizar las solicitudes, pero desafortunadamente, esto aparece en el MDN

Nota importante: al responder a una solicitud con credencial, el servidor debe especificar un dominio y no puede usar el cardado comodín.

¿Hay alguna manera de hacer que mi solicitud funcione en varios dominios, y todavía enviar credenciales usando CORS?

Dos pensamientos:

1) ¿También está incluyendo el encabezado “Access-Control-Allow-Credentials: true”? Esto es necesario para pasar credenciales de cookies (y el cliente XHR correspondiente debe establecer .withCredentials = true)

2) ¿Ha probado la sugerencia de su enlace y solo incluye el origen de la solicitud actual? Por ejemplo, si aparece una solicitud con el encabezado “Origen: http://blog.example.com “, respondería con “Access-Control-Allow-Origin: http://blog.example.com “, y no una lista de orígenes. Esto requiere un poco más de trabajo en la implementación del lado del servidor.

3) Otro pensamiento, mencionas que tienes un único formulario de inicio de sesión que debe ser compartido por varios dominios. Bueno, si se trata de un formulario HTML estándar, puede hacer una publicación de formulario regular en todos los dominios. No necesita usar CORS. Simplemente establece la propiedad “acción” del formulario en la url que deseas publicar. Por ejemplo:

 
 // cross domain header("Access-Control-Allow-Origin: ".$_SERVER['HTTP_ORIGIN']); header('Access-Control-Allow-Credentials: true');