URL de redirection de JavaScript avec en-tête d'autorisation

J'ai réussi à invoquer avec succès une URL derrière un répertoire d'Apache protégé par l'authentification de base (htpasswd, etc.). La requête Ajax GET fonctionne normalement et renvoie le contenu protégé:

var encoded = Base64.encode(username + ':' + password); $.ajax({ url: "/app/test", type: "GET", beforeSend: function(xhr) { xhr.setRequestHeader('Authorization', 'Basic ' + encoded); }, success: function() { window.location.href = '/app/test.html'; } }); 

Mon hypothèse d'origine était que, une fois que la session Web avait réussi à autoriser une demande, cela permettrait la redirection dans le bloc 'succès' sans demander les informations d'identification des utilisateurs . Lorsque ce bloc de code est invoqué, l'utilisateur a entré le nom d'utilisateur et le mot de passe, dans un environnement non protégé. Cependant, lorsque la redirection est invoquée, le navigateur affichera la fenêtre de connexion / mot de passe.

Des suggestions sur la façon dont je pourrais préautoriser une session avec l'autorisation de base qui aurait été fournie par les utilisateurs?

Je souhaite simplement partager les informations pour lesquelles la redirection dans ce cas nécessite une autorisation supplémentaire. Selon la RFC 7617, une réutilisation d'une authentification réussie est possible dans des circonstances spécifiques.

Un client PEUT envoyer de manière préemptive le champ d'en-tête Autorisation correspondant avec des demandes de ressources dans cet espace sans avoir reçu d'autre défi du serveur. De même, lorsqu'un client envoie une requête à un proxy, il est possible de réutiliser un identifiant utilisateur et un mot de passe dans le champ d'en-tête de l'Autorité de Proxy sans avoir reçu d'autre défi du serveur proxy.

Par exemple, suite à une demande authentifiée:

http://example.com/docs/index.html

Les demandes aux URI ci-dessous pourraient utiliser les informations d'identification connues:

http://example.com/docs/

http://example.com/docs/test.doc

http://example.com/docs/?page=1

Tandis que les URI

http://exemple.com/other/

https://example.com/docs/

Serait considéré comme étant en dehors de la portée de l'authentification. [ RFC 7617 # Section-2.2 ]

Dans le cas particulier

 Redirecting from /app/test/ to /app/test.html 

Sans autorisation supplémentaire, il est suffisant de modifier l'emplacement de la ressource /app/test.html à /app/test/test.html par exemple.

Il serait même préférable de modifier la ressource dans le fichier d'index par défaut /app/test/index.html .