繁体   English   中英

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

[英]Using JWT to send username, password to authenticate

刚开始寻找JWT时,我首先看到的示例要求用户执行POST请求,并在请求正文中包含纯文本的用户名和密码。 验证此请求后,将发送JWT,然后将其用于其他请求。

显然我在这里丢失了一些东西,但是我是否不仅在第一次请求时就发送了不安全的数据? 这是我需要HTTPS的地方吗?

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

但是,JWT本身(它的数据块是任何人都可以读取的),只要愿意,您就可以在客户端上对其进行解析,并从中读取userName / email /,这样,如果数据块本身未加密。

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

JWT用于对以前已经向服务器进行身份验证的用户进行身份验证,并且在无状态环境中很有用,而在有状态环境中并不是真正有用。

JWT的目的是在用户上存储足够的数据,以便接收它的服务器可以使用它来确定用户是否合法以及他可以做什么。 它们在分布式环境中非常有用,因为这样您就可以将JWT从一台服务器传递到另一台服务器,并且只要它们都持有签名密钥,它们就只能基于令牌对用户进行身份验证。

用户名和密码仅在第一个请求中是服务器所必需的,因此服务器可以例如根据用户数据库对用户进行身份验证,然后,之后的每个请求都将使用令牌,从而使服务器能够对令牌进行身份验证。用户无需在每个请求上再次往返数据库。

就HTTPS而言,我会说-将其用于所有内容。 在当今无处不在的无线网络中,您的数据比以前暴露得多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM