0

我正在通过网络上的一些教程来学习 angular2。当使用 jwt 令牌创建登录页面时,许多示例方法如下: - 当用户输入电子邮件和密码时,提交事件将调用身份验证 api - 成功的身份验证将在有效负载中返回一个带有到期日期的令牌。此令牌存储在本地存储中 - 受限路线导航将通过本地存储中的 getItem 检查经过身份验证的用户,检查令牌的存在和到期日期

我的问题是:我可以使用 localstorage 中的令牌轻松访问 jwt.io,稍后将到期号更改为其他值,复制新生成的令牌并手动粘贴回 localstorage 项

我的想法:在任何路线导航之前调用 api tokenValidation,似乎会引入大量服务器调用

欣赏你的想法

4

1 回答 1

1

不,你不能那样做。JWT 令牌的全部意义在于它们是加密签名的,使用只有服务器知道的密钥。因此,如果您尝试篡改令牌中的到期日期或其他任何内容,服务器将检测到签名不匹配,并将拒绝令牌。

所以是的,您将能够转到受保护的路由,但是一旦您尝试发出 HTTP 请求,您就会从后端收到一个错误(或者至少您应该收到一个错误)。客户端保护并不是真正的安全措施:组件的代码无论如何都可以在下载的包中使用。这是一种符合人体工程学的措施:例如,如果用户无法访问路线,他/她可以自动重定向到登录页面。

于 2017-03-31T22:56:46.283 回答