次のコードを実装しようとしていますが、何かがうまくいきません。コードは次のとおりです。
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(session_url, {
headers: { 'Authorization': + basicAuth }
}).then(function(response) {
console.log('Authenticated');
}).catch(function(error) {
console.log('Error on Authentication');
});
401 エラーが返されます。Postman で実行すると、Basic Auth を設定するオプションがあります。これらのフィールドに入力しないと 401 が返されますが、入力するとリクエストは成功します。
何が間違っているのか、何かアイデアはありますか?
これを実装する方法についての API ドキュメントの一部を次に示します。
このサービスは、ヘッダー内の基本認証情報を使用してユーザー セッションを確立します。資格情報はサーバーに対して検証されます。この Web サービスを使用すると、渡されたユーザー資格情報を使用してセッションが作成され、JSESSIONID が返されます。この JSESSIONID は、Web サービス呼び出しを行う後続のリクエストで使用できます。*
ベストアンサー1
Basic Auth には「auth」パラメータがあります。
auth: {
username: 'janedoe',
password: 's00pers3cret'
}
ソース/ドキュメント: https://github.com/mzabriskie/axios
例:
await axios.post(session_url, {}, {
auth: {
username: uname,
password: pass
}
});