This is how the authentication is supposed to be.
POST https://DomainName/api/v1/authentication?username= {username}&password={password}.. this is the typescript authentication call code
authenticate(url, payload){
let username: string = 'admin';
let password: string = 'password';
let headers: Headers = new Headers();
headers.append("Authorization", "Basic " + btoa(username + ":" + password));
headers.append("Content-Type", "application/json");
headers.append("Access-Control-Allow-Origin", "*");
return this.http.post(server + url + addon, payload, { headers:headers });
this is the code for the form data
// Getting data info from signing form
loginForm = new FormGroup({
username: new FormControl(null, ([Validators.required, Validators.minLength(5)])),
password: new FormControl(null, ([Validators.required, Validators.minLength(5)])),
})
the user data
// user data
loginData={
username:'',
password:'',
}
buildLoginData(){
this.loginData.password = this.loginForm.controls['password'].value;
this.loginData.username = this.loginForm.controls['username'].value;
}
the sign in function
signin(){
this.loading =this.loadingCtrl.create({
content:"Verifying Credentials ..."
});
this.loading.present();
this.buildLoginData();
console.log(this.loginData);
this.http.store('authentication', this.loginData).subscribe((response)=>{
// console.log(response);
// console.log("*******************************************");
// console.log(response['username']);
localStorage.setItem('office_ID',response['officeId']);
localStorage.setItem('user_ID', response['userId']);
localStorage.setItem('username', response['username']);
this.loading.dismissAll();
this.navCtrl.push(HomePage);
},error=>{
this.loading.dismissAll();
if(error.status === 401){
this.toastr.messenger('Wrong Username or Password');
}else
this.toastr.messenger('Login Failed!');
console.log(JSON.stringify(error));
alert("Error : " + error );
});
}
Response log data
{"_body":"{\"developerMessage\":\"Invalid authentication details were
passed in api request.\",\"httpStatusCode\":\"401\",\"defaultUserMessage
\":\"Unauthenticated. Please login.\",\"userMessageGlobalisationCode
\":\"error.msg.not.authenticated\",\"errors
\":[]}","status":401,"ok":false,"statusText":"Unauthorized","headers":
{"Content-Type":["application/json"]},"type":2,"url":"https//x.x.x.x:xxxx
/xxxxxxxxx/api/v1/authentication?tenantIdentifier=default"}
the error
"Unauthorized" and this is because the form values are not being sent to
the api as headers.
Any help is much Appreciated. Thanks.
Does your this.http.store(url,data)
add the url Parameters behind the scene?
authentication?username={username}&password={password}..
if not the quick way is to do it yourself
const url =`authenticationusername=${this.loginData.username}&password=${this.loginData.password}`
then your can do
this.http.store(url,this.loginData)
Or you can look at URL Parameters https://angular.io/guide/http#url-parameters
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.