Je veux écrire une authentification de base simple avec fetch, mais j'obtiens toujours une erreur 401. Ce serait génial si quelqu'un me disait ce qui ne va pas avec le code:
let base64 = require('base-64');
let url = 'http://eu.httpbin.org/basic-auth/user/passwd';
let username = 'user';
let password = 'passwd';
let headers = new Headers();
//headers.append('Content-Type', 'text/json');
headers.append('Authorization', 'Basic' + base64.encode(username + ":" + password));
fetch(url, {method:'GET',
headers: headers,
//credentials: 'user:passwd'
})
.then(response => response.json())
.then(json => console.log(json));
//.done();
function parseJSON(response) {
return response.json()
}
javascript
fetch-api
daniel.lozynski
la source
la source
base64
fait référence à la bibliothèque importée dans l'article d'origine. Ce n'est pas un global intégré, mais une bibliothèque qui a été importée dans le module CJS.Une solution sans dépendances.
Nœud
Navigateur
la source
window.btoa(username + ':' + password);
developer.mozilla.org/en-US/docs/Web/API/WindowBase64/…window.btoa(unescape(encodeURIComponent(string)));
devrait faire le travail, vous pouvez en savoir plus à ce sujet ici: developer.mozilla.org/en-US/docs/Web/API/WindowBase64/…fetch
n'existe pas là-bas.Vous pouvez également utiliser btoa au lieu de base64.encode ().
la source
Si vous avez un serveur principal qui demande les informations d'identification de base avant l'application, cela suffit, il le réutilisera alors:
la source
Un exemple simple de copier-coller dans la console Chrome:
la source
LES UTILISATEURS DE NOEUDS (REACT, EXPRESS) SUIVENT CES ÉTAPES
npm install base-64 --save
import { encode } from "base-64";
N'oubliez pas de définir toute cette fonction comme
async
la source
Je partagerai un code qui a un corps de demande de données de formulaire d'en-tête d'authentification de base,
la source
Ce n'est pas directement lié au problème initial, mais cela aidera probablement quelqu'un.
J'ai rencontré le même problème en essayant d'envoyer une demande similaire à l'aide d'un compte de domaine. Le problème de la mienne n'était donc pas un caractère échappé dans le nom de connexion.
Mauvais exemple:
Bon exemple:
la source