Quero escrever uma autenticação básica simples com fetch, mas continuo recebendo um erro 401. Seria incrível se alguém me dissesse o que há de errado com o 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
fonte
fonte
base64
refere-se à biblioteca importada na postagem original. Não é um global integrado, mas uma biblioteca que foi importada no módulo CJS.Uma solução sem dependências.
Nó
Navegador
fonte
window.btoa(username + ':' + password);
developer.mozilla.org/en-US/docs/Web/API/WindowBase64/…window.btoa(unescape(encodeURIComponent(string)));
devem fazer o trabalho, você pode ler mais sobre isso aqui: developer.mozilla.org/en-US/docs/Web/API/WindowBase64/…fetch
não existe lá.Você também pode usar btoa em vez de base64.encode ().
fonte
Se você tiver um servidor de back-end solicitando as credenciais de autenticação básica antes do aplicativo, isso será suficiente e será reutilizado:
fonte
Um exemplo simples de copiar e colar no console do Chrome:
fonte
USUÁRIOS DE NÓ (REAGIR, EXPRESSAR) SEGUEM ESTAS ETAPAS
npm install base-64 --save
import { encode } from "base-64";
Não se esqueça de definir toda esta função como
async
fonte
Vou compartilhar um código que tem corpo de solicitação de dados de formulário de cabeçalho de autenticação básica,
fonte
Isso não está diretamente relacionado ao problema inicial, mas provavelmente ajudará alguém.
Eu enfrentei o mesmo problema ao tentar enviar uma solicitação semelhante usando uma conta de domínio. Portanto, o meu problema foi no caractere de escape no nome de login.
Mau exemplo:
Bom exemplo:
fonte