在前端实现JWT(理解JWT的概念)



我在JWT实现的一部分,当我有我的用户令牌,我在Angular中实现认证保护。每次更改路由时,它都会调用isAuthenticated(),现在我有问题了。我可以在没有密钥的情况下在前端解码JWT令牌以获得到期,但黑客也可以在本地存储中更改他的令牌,以增加到期时间。如果我正确理解JWT概念,解决方案是a) function isAuthenticated() call API for example backend.xxx.com/isAuthenticated, if token is valid 200 - is authenticated, else 401 - isnt authenticated.b) validate token with same secret that is on backend.你能告诉我解决这个问题的好方法是什么吗?我只是看到人们在教程/博客上解码令牌而不验证它,所以我很困惑,我正确地理解它

您可能知道JWT令牌由三部分组成:

头→包含令牌类型和使用的算法

有效载荷→包含数据

→迹象对前两部分计算的散列,可以使用密码短语计算。

首先,您应该使用密码短语作为符号,然后在每次需要时使用后端解码和验证令牌。前端不应该能够解码令牌,这是因为密码短语可以被一个有动机的黑客在你的迷你js中找到,而且情况不会改变。

相关内容

  • 没有找到相关文章

最新更新