59 votes

Code JavaScript pur pour l'authentification HTTP Basic ?

Où puis-je trouver un code de référence qui met en œuvre un client d'authentification HTTP Basic en JavaScript pur, adapté à AJAX ?

Des points supplémentaires pour du code, ou des pointeurs vers du code, qui peut être utilisé indépendamment des boîtes à outils JS comme YUI. Aucun point pour Java, Flash/Flex, les frameworks PHP, etc.

3 votes

Que voulez-vous dire par "javascript pur" ? Vous cherchez un moyen de définir des cookies avec javascript sans recharger la page ?

4 votes

L'authentification de base n'utilise pas les cookies mais les en-têtes HTTP.

61voto

Alnitak Points 143355

La version à cinq paramètres de l XMLHttpRequest.open vous permet de spécifier le nom d'utilisateur et le mot de passe. ( [Spécification du WHATWG](https://xhr.spec.whatwg.org/#the-open()-method) )

xhr.open(method, url, async, username, password)

24voto

splattne Points 48126

Il y a un bon article/tutoriel écrit par Paul James . Je l'ai utilisé il y a quelque temps et cela a fonctionné pour moi.

Authentification HTTP avec les formulaires HTML

[...] XMLHTTPRequest, il peut soumettre la requête les en-têtes HTTP auth correctes pour nous. Plutôt que d'ajuster l'URL à laquelle le formulaire vers laquelle le formulaire se soumet, nous pouvons utiliser XMLHTTPRequest pour effectuer une requête avant que le formulaire soumette le formulaire en fournissant le nom d'utilisateur et le mot de passe.

Cela va configurer le navigateur avec les informations d'authentification HTTP. afin qu'il les envoie aussi avec notre demande de connexion de soumission de formulaire.

2 votes

C'est plus que ce que je cherchais, mais cela semble être une très bonne façon de remplacer la boîte de dialogue de connexion par défaut du navigateur.

3 votes

J'ai essayé et cela fonctionne mais j'obtiens ceci dans la console Chrome : Les demandes de sous-ressources dont les URL contiennent des informations d'identification intégrées (par ex. https://user:pass@host/ ) sont dépréciés, et seront bloqués dans la M59, vers juin 2017. Voir chromestatus.com/feature/5669008342777856 pour plus de détails. Existe-t-il d'autres méthodes ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X