如何在 Angular 8 中对客户端的 JWT 解码令牌有效负载进行编码?

Posted

技术标签:

【中文标题】如何在 Angular 8 中对客户端的 JWT 解码令牌有效负载进行编码?【英文标题】:How to encode the JWT decode token payload on client-side in angular 8? 【发布时间】:2020-02-08 15:20:44 【问题描述】:

我正在使用 angular2-jwt 来解析 http.get 之后的代码。 我需要在发送 http 帖子时对正文进行编码。

let body = 
 "sub": "1234567890",
 "name": "John Doe",
 "iat": 1516239022
;

this.http.post(url, body,  headers: headers ).subscribe(res => 
       resolve(res);
     , (err) => 
       resolve(err);
);

【问题讨论】:

你为什么要这么做?登录后,服务器应在标头中向您发送编码的 jwt 令牌。 【参考方案1】:

您无法对其进行编码,您可以使用密钥对 JWT 进行编码,这是您永远不应该向客户端公开的内容。

要解码 JWT,您必须让原始编码的 JWT 已经浮动,将其发送回服务器而不是解码的对象。

【讨论】:

【参考方案2】:

你想在这里使用resolve 做什么?您的 res 将包含您收到的数据

this.http.post(url, body,  headers: headers ).subscribe(res => 
       console.log(res)//here res is your body/data
     , (err) => 
       resolve(err);
);

【讨论】:

以上是关于如何在 Angular 8 中对客户端的 JWT 解码令牌有效负载进行编码?的主要内容,如果未能解决你的问题,请参考以下文章

如何检查 JWT 令牌是不是在 Angular 8 中过期

如何在 CodeIgniter 3.x 中为来自客户端的每个请求验证 JWT 令牌

获取 JWT 后,带有 Spring Boot 后端的 Angular 在现有路由上返回 404

如何将 JWT 令牌从 PHP 发送到 Angular?

如何在 Angular 8 中存储 jwt 令牌之类的数据?是不是有另一种使用本地存储或会话存储安全存储的方法?

了解 JWT 和 HTTP 授权标头? (客户端:Angular,服务器:php)