gpt4 book ai didi

Angular 2 : Get Authorization header

转载 作者:太空狗 更新时间:2023-10-29 17:11:36 30 4
gpt4 key购买 nike

在我的应用程序(Angular 2/Ionic 2)中,我实现了自己的登录/身份验证。基本上它是这样工作的:登录时,用户名和密码由 PHP 后端验证。生成一个 token ,将其发送回 header 中的前端(授权)。来自后端的响应如下所示:

HTTP/1.1 200 OK
Host: localhost:8080
Connection: close
X-Powered-By: PHP/5.6.28
Set-Cookie: PHPSESSID=jagagi2le1b8i7r90esr4vmeo6; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Type: application/json
Authorization: d7b24a1643a61706975213306446aa4e4157d167eaad9aac989067a329c492d3
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: X-Requested-With, Content-Type, Accept, Origin, Authorization
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
Content-Length: 301

显然有一个带有 token 的授权 header 。CORS 似乎也已正确设置,因为我在 Allow-Headers header 中看到了授权。

但是,当我尝试在 Angular 2 中获取 header 时,它总是返回 null:

private extractDataAndSetAuthHeader(res: Response) {

// Set auth header if available.
// If not available - user is not logged in. Then
// we also have to remove the token from localStorage
if(res.headers.has("Authorization"))
{
let token = res.headers.get("Authorization");

this.setToken(token);
}
else
{
// If no token is sent, remove it
this.removeToken();
}

let body = res.json();
return body.data || { };
}

该方法的第一行返回 false。此外,当我检查响应中的 header 对象时,它只显示以下内容(Chrome 开发工具):

[[Entries]]:
Array[4]
0:{"pragma" => Array[1]}
1:{"content-type" => Array[1]}
2:{"cache-control" => Array[1]}
3:{"expires" => Array[1]}

该对象中没有授权 header 。

谁能帮帮我?

提前致谢:)

最佳答案

只是想发布答案,因为它可能对其他人有帮助:解决方案如设置

Access-Control-Expose-Headers: Authorization

然后 - 前端也可以读取授权 header 。

关于 Angular 2 : Get Authorization header,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42314069/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com