当前位置: 首页 > 知识库问答 >
问题:

如何在Angular中从服务器获取带有jwt令牌的响应头

许彭祖
2023-03-14

Angular这个代币怎么获得?我试图使用这段代码,但得到一个空值。请帮帮忙。

login() {


    const body = { username: this.user, password: this.pass };
    this.http.post('http://localhost:8090/login', body, { observe: 'response'}).subscribe(
      (response) => {
        console.log(response.headers.get("Authorization"));
      });


 }

共有1个答案

冷翼
2023-03-14

我认为你是在良好的轨道上,但你可能有一个关于COR和头部授权响应后端服务器的问题。

使用此代码检查您收到的标头:

this.http.post('http://localhost:8090/login', body, { observe: 'response'}).subscribe(response => {
  const keys = response.headers.keys();
  const headers = keys.map(key =>
    `${key}: ${response.headers.get(key)}`);

   console.table(headers);
})

如果在控制台输出中没有看到任何authorization头,则应该检查后端配置。

@Override
public void addCorsMappings(CorsRegistry registry) {
    registry.addMapping("/api/**")
        .allowedOrigins("http://domain2.com")
        .allowedMethods("PUT", "DELETE")
        .allowedHeaders("header1", "header2", "header3")
        .exposedHeaders("Authorization")
        .allowCredentials(false).maxAge(3600);
}

我的建议是将公开的标头限制在特定的endpoint,例如login,还可以选择另一个标头,例如'x-auth-token,并且只发送token(不使用bearer`)。

因为语法为承载令牌授权用于从前端到后端的请求。

 类似资料:
  • 我有一个单独的身份验证服务器和一个资源服务器——都是Spring Boot应用程序。我使用OAuth2和JWT令牌进行身份验证和授权。 我可以通过访问身份验证服务器获得令牌: 并通过将令牌附加到请求标头来从资源服务器(在不同的服务器上运行)获取资源时使用它。 但我不清楚的是,确定哪个用户登录了资源服务器。 在auth服务器中,我可以这样做: 此终结点将根据所使用的令牌获取当前用户。如果我尝试在资源

  • 如何使用ruby获得服务器响应时间? get_response(URI. parse(url))到URL的响应代码和响应时间。实际上我的代码是: 它工作得很好,但我的响应时间太高,例如:Twitter。com(630.52ms)。如果我尝试ping推特。com,我收到70/120毫秒的回复。 这是计算此服务器响应时间的最佳方法吗?

  • 我有一个顶点。x REST服务接收带有jwt令牌的请求,我想调用另一个传递接收到的令牌的REST服务。在路由器处理程序和WebClient调用之间,我有一个业务逻辑层。我的问题是,除了通过我的业务逻辑层显式地传递令牌之外,是否有其他方法可以向webClient提供令牌?换句话说,是否可以从vertxContext或其他组件中以某种方式检索我的RoutingContext和令牌? 示例代码演示了我想

  • 我在stackoverflow上读了很多文章,看过很多youtube视频,但没有找到示例代码来演示将jwt保存到localstorage的流程-使用授权标头发送回服务器进行验证。 这是我想做的。 当客户端登录到服务器时,服务器提供令牌并将其保存到客户端本地存储(或会话存储)。 每当客户端调用只能使用令牌访问的api时,客户端从本地存储中检索令牌,并将该令牌与授权标头(或请求标头。[authoriz

  • 您好,我正在JWTTokenStore中使用Spring Security Oauth2。我想在用户将令牌内容与资源请求一起发送回来后从REST服务读取令牌内容。例如:curl-i-H“授权:持有人”http://localhost:8080/api/UserDetails 读取UserDetails服务中的令牌。 非常感谢。