首页 > 解决方案 > 无法使用 API 400 错误请求进行身份验证

问题描述

我正在尝试使用 API 对用户进行身份验证。我已经实现了登录功能的方法

 login() {

this.key = this.credentials.username + ":" + this.credentials.password;
this.base64 = btoa(this.key)  //base64

this.url = encodeURI(this.base64);  //url

this.contentHeader = new HttpHeaders().set("Authorization", "Basic " + this.url);

return new Promise((resolve, reject) => {
  console.log(this.contentHeader)
  this.http.post(this.LOGIN_URL, null, { headers: this.contentHeader })
    .subscribe(res => {
      resolve(res);
      console.log("success:" + res)
      res => this.authSuccess(res.id_token)

    }, (err) => {

      console.log("rejected");
      reject(err);
    });
});

}

我正在尝试连接用户名和密码,然后编码为 base64。再次将其编码为 URL 并与标头组合发布。我正在正确地通过邮递员进行身份验证。但在 ionic 应用程序中,它表示请求错误。

标签: angularionic3

解决方案


当您使用 HTTP 或 HTTPClient 发送 POST 请求时,第二个参数作为 POST 正文发送。在您的代码中,您似乎不是将 Authorization 作为标题发送,而是作为 POST 正文发送。

将其更改为:

this.http.post(this.LOGIN_URL, null, {
    headers: HttpHeaders().set("Authorization", "Basic " + this.url)
  })

推荐阅读