2017-05-19 12 views
9

Ich versuche, den folgenden Code zu implementieren, aber etwas funktioniert nicht. Hier ist der Code:So senden Sie Basic Auth mit Axios

var session_url = 'http://api_address/api/session_endpoint' 
    var username = 'user'; 
    var password = 'password'; 
    var credentials = btoa(username + ':' + password); 
    var BasicAuth = 'Basic ' + credentials; 
    axios.post(sesion_url,{ 
    headers: {'Authorization': +BasicAuth} 
    }).then(function(response){ 
    console.log('Authenticated'); 
    }) 
    .catch(function (error){ 
    console.log('Error on Authentication'); 
    }); 

Es gibt einen Fehler 401 zurück. Wenn ich es mit Postman mache, gibt es eine Option, Basic Auth zu setzen, wenn ich diese Felder nicht fülle, gibt es auch 401 zurück, aber wenn ich die Anfrage mache, ist es erfolgreich.

Irgendwelche Ideen was mache ich falsch?

Hier ist ein Teil der Dokumentation der API, wie Sie dies implementieren: Dieser Dienst verwendet Basic Authentication Informationen in der Kopfzeile, um eine Benutzersitzung einzurichten. Anmeldeinformationen werden für den Server überprüft. Mit diesem Web-Service wird eine Sitzung mit den übergebenen Benutzerdaten erstellt und eine JSESSIONID zurückgegeben. Diese JSESSIONID kann in den nachfolgenden Anforderungen für Web-Service-Aufrufe verwendet werden.

Antwort

12

Es gibt einen "Auth" Parameter für Basic Auth:

auth: { 
    username: 'janedoe', 
    password: 's00pers3cret' 
} 

Quelle/Text & Tabellen: https://github.com/mzabriskie/axios

+0

Hallo, wie kann ich einstellen, dass in alle axios Anruf? Ich muss Basic Auth zu allen Ajax Calling hinzufügen. axios.defaults.auth = {Benutzername: 'dd', Passwort: '##'} Dies funktioniert nicht für mich. – hkg328

+0

vielleicht hilft das: https://gist.github.com/EQuimper/dc5fe02dcaca4469091729e1313f78d1 – luschn

+0

BTW, können Sie auch einen Wrapper um Axios für diese Art von Dingen schreiben – luschn