使用 JWT 发送用户名、密码进行身份验证

JD.*_*JD. 2 javascript jwt

刚开始寻找 JWT,我首先看到的示例要求用户执行 POST 请求,请求正文包含纯文本的用户名和密码。该请求经过身份验证后,将发送 JWT,然后将其用于进一步的请求。

显然我在这里遗漏了一些东西,但我不是只是在第一个请求时发送了不安全的数据吗?这是我需要 HTTPS 的地方吗?

web*_*deb 5

JWT 不会为您提供开箱即用的安全性,它的主要目的是确保令牌不会被不受信任的机构更改。它只是验证里面的数据是否正确。

然而,JWT 本身,它的数据块是任何人都可以读取的,你可以在客户端解析它,并从中读取用户名/电子邮件/,如果你愿意的话,所以攻击者也可以读取它,如果数据块本身未加密。

HTTPS 将对客户端 <-> 服务器之间传递的所有数据进行加密。它与身份验证无关,它只是一个协议,无论如何你都应该使用它,无论是否使用 JWT。