我试图从ionic 4项目中获取请求,但我需要为此使用用户名和密码,否则会收到错误403
这是我的代码:
constructor(public httpClient: HttpClient){
this.items = this.httpClient.get('http://www.fostania.com/api/items/');
this.items.subscribe(data => {
console.log('my data: ', data);
})
}
我应该在哪里添加用户名和密码?
UPDATE
试图像'http://username:password@www.fostania.com/api/items/'
但仍然给我错误
HttpErrorResponse {headers: HttpHeaders, status: 403, statusText: "Forbidden", url: "http://www.fostania.com/api/items/", ok: false, …}
答案 0 :(得分:3)
首先,如果要在其中包含请求主体,我不建议您使用GET请求,虽然可能有一些解决方法,但可能与标准做法背道而驰。您应该改用POST请求。
接下来,如果要通过API请求发送敏感信息(例如密码),则绝对不安全协议通过HTTP发送纯文本密码。多亏了TLS / SSL加密,您应该改用HTTPS。
改为使用此:
getData() {
.
.
.
return `this.httpClient.post('https://www.fostania.com/api/items/', requestBody, httpOptions)
.pipe(
tap(data => console.log(data))
);`
}
在服务器端,您可以实现后端逻辑,并返回适当的逻辑。响应主体。
我不是信息安全方面的专家,但是我以前已经阅读过有关通过HTTPS发送密码(如果确实确实100%安全)的做法。事实证明,在某些情况下,攻击者仍然可以绕过这些协议。因此,某些组织/软件团队可能会练习对密码进行散列或加密,而不是在请求正文上传输实际密码。您可能想详细了解here! (积分:@ user3299591)