Condivisione di risorse Cross Origin con credenziali

Ho un modulo di autenticazione comune su più sottodomini (example.com, blog.example.com e app.example.com). Il modulo di login deve inviare questi dati a esempio.com indipendentemente da dove viene mostrato, quindi ho pensato di utilizzare CORS, ma questo:

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

non funziona

Quindi ho pensato di fare la prossima cosa, e di controllare manualmente l’intestazione Origin sul lato server, e di consentire un Access-Control-Allow-Origin: * modo che le richieste potessero essere fatte, ma sfortunatamente, ciò si verifica nell’MDN

Nota importante: quando si risponde a una richiesta con credenziali, il server deve specificare un dominio e non può utilizzare la wild card.

C’è un modo per far funzionare la mia richiesta su più domini e inviare comunque credenziali usando CORS?

Due pensieri:

1) includi anche l’intestazione “Access-Control-Allow-Credentials: true”? Questo è necessario per il passaggio delle credenziali dei cookie (e il corrispondente client XHR deve impostare .withCredentials = true)

2) Hai provato il suggerimento dal tuo link e includi solo l’origine per la richiesta corrente. Ad esempio, se una richiesta arriva con l’intestazione “Origine: http://blog.example.com “, risponderai con “Access-Control-Allow-Origin: http://blog.example.com “, e non un elenco di origini. Ciò richiede un po ‘più di lavoro per l’implementazione lato server.

3) Un altro pensiero, hai detto che hai un singolo modulo di accesso che deve essere condiviso da vari domini. Bene, se si tratta di un modulo HTML standard, puoi eseguire un modulo standard su più domini. Non è necessario utilizzare CORS. Basta impostare la proprietà “action” del modulo sull’URL in cui desideri postare. Per esempio:

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