Contestorichieste HTTPS con l'autorizzazione non funziona tramite Safari
richieste XHR con intestazione di autorizzazione tramite HTTPS (entrambi insieme) non raggiungere il server, utilizzando Safari (IOS e Mac OS). Funziona con IE, Chrome e Firefox.
Uso un certificato valido generato da Letsencrypt e i browser non visualizzano avvisi su di esso.
Nell'ispettore web di Safari, questi XHR cercano di ottenere risultati fino al timeout e nessun errore visualizzato.
Ho un dominio e nessun sottodominio.
prova
- intestazione di autorizzazione + HTTPS => Non funziona
- Autorizzazione intestazione + No HTTPS (HTTP) => Opere
- Nessuna intestazione autorizzazione + HTTPS => Opere
Codice
Uso un intercettore per impostare l'intestazione di autorizzazione.
this.request = (config) => {
config.headers = config.headers || {};
var authData = localStorageService.get('authorizationData');
if (authData && config.url && !config.url.endsWith("/token")) {
config.headers = {
"Authorization": 'Bearer ' + authData.access_token
};
config.withCredentials = true;
}
return config;
}
Qualcuno ha riscontrato gli stessi problemi?
UPDATE 1
C'è qualcosa che non va con Safari + HTTPS + "Autorizzazione" intestazione. Se rinominare "Autorizzazione" con "MyHeader" e apportando qualche modifica sul server per recuperare il mio token bearer con il token "MyHeader", tutto funziona correttamente.
L'intestazione "Autorizzazione" è una parola protetta che utilizza HTTPS in Safari?
Hai mai stabilito se l'autorizzazione era una parola protetta su Safari? –
Non ho trovato nulla sulle parole protette su Safari. –
Abbiamo scoperto quale fosse il problema per noi. Se si tenta di utilizzare Safari su un certificato non sicuro (autofirmato è stato il colpevole per noi), Safari non consente di modificare il campo dell'intestazione Autorizzazione. La nostra soluzione era di fidarsi del certificato autofirmato o di passare al normale http (entrambe le soluzioni funzionavano). Mi sembra che il tuo problema fosse diverso, anche se –