Quiero escribir una autenticación básica simple con fetch, pero sigo recibiendo un error 401. Sería increíble si alguien me dijera qué está mal con el código:
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
fuente
fuente
base64
refiere a la biblioteca importada en la publicación original. No es un global integrado, sino una biblioteca que se importó en el módulo CJS.Una solución sin dependencias.
Nodo
Navegador
fuente
window.btoa(username + ':' + password);
developer.mozilla.org/en-US/docs/Web/API/WindowBase64/…window.btoa(unescape(encodeURIComponent(string)));
debería hacer el trabajo, puede leer más sobre esto aquí: developer.mozilla.org/en-US/docs/Web/API/WindowBase64/…fetch
, no existe allí.También puede usar btoa en lugar de base64.encode ().
fuente
Si tiene un servidor de backend que solicita las credenciales de autenticación básica antes de la aplicación, entonces esto es suficiente, lo reutilizará entonces:
fuente
Un ejemplo sencillo de copiar y pegar en la consola de Chrome:
fuente
USUARIOS DE NODO (REACCIONAR, EXPRESAR) SIGAN ESTOS PASOS
npm install base-64 --save
import { encode } from "base-64";
No olvide definir toda esta función como
async
fuente
Compartiré un código que tiene un cuerpo de solicitud de datos de formulario de encabezado de autenticación básica,
fuente
Esto no está directamente relacionado con el problema inicial, pero probablemente ayudará a alguien.
Enfrenté el mismo problema cuando intentaba enviar una solicitud similar usando una cuenta de dominio. Entonces, el problema mío no fue el carácter de escape en el nombre de inicio de sesión.
Mal ejemplo:
Buen ejemplo:
fuente