I want to authenticate against HP Alm but when running the code in a browser a popup appears telling me to manually log in. That acutally works, I can send request afterwards, all good.
But how do I avoid that? I want it to authenticate without that browser login form. Any ideas? Thank you!
Best regards, Daniel
import utf8 from 'utf8';
import base64 from 'base-64';
class AlmApi {
static getAllDefectsFromAlm() {
performSignIn();
headers.append('Accept', 'application/json');
return fetch(request, {
method: 'GET',
mode: 'no-cors',
credentials: 'include',
headers: headers
})
.then(response => response.json())
.catch(error => console.log('Getting data failed: ' + error.message));
}
}
let alm_host = '<URL><PORT>/qcbin';
let sign_in = alm_host + '/api/authentication/sign-in';
let sign_out = alm_host + '/api/authentication/sign-out';
let request = alm_host + '/rest/domains/<DOMAIN>/projects/<PROJECT>?<QUERY>';
let username = 'USERNAME';
let password = 'PASSWORD';
let login_credentials = username + ':' + password;
let bytes = utf8.encode(login_credentials);
let headers = new Headers();
function performSignIn() {
headers.append('Content-Type', 'application/json');
headers.append('Accept', 'application/json');
headers.append('Authorization', 'Basic' + base64.encode(bytes));
fetch(sign_in, {
credentials: 'include',
method: 'POST',
headers: headers,
mode: 'no-cors'
})
.then(response => response.json())
.catch(error => console.log('Authorization failed : ' + error.message));
}
function performSignOut() {
headers.append('Accept', 'application/json');
fetch(sign_in, {
method: 'POST',
headers: headers
})
.catch(error => console.log('Logout failed: ' + error.message));
}
export default AlmApi;
via daniel.lozynski
No comments:
Post a Comment