Dip*_*vda 1 jwt angularjs mean-stack express-jwt
有很多讨论并赞成基于标记的MEAN应用程序身份验证体系结构是安全的。但是我有一个问题,那就是它是否确实将用户名和密码作为授权和身份验证作为JSON Web令牌中的有效载荷传递,并且如果我们没有在有效载荷中传递安全信息,那么JSON Web Token如何在服务器中没有用户名/口令的情况下对用户进行身份验证侧。
我读了很多架构方面的文章,但是他们不能解释在不使用用户名/密码的情况下,他们使用了什么逻辑来验证令牌。
将身份验证令牌存储在cookie中而不是在Web存储中是否有效?
是的,我知道他们使用私钥和公钥进行验证,但这不足以进行身份验证。要验证特定用户,它需要一些密钥值,例如用户名/密码或标识特定用户所需的任何密钥访问权限。
不,在JWT中发送密码并不安全。这是因为JWT声明被简单地编码,并且任何看到它们的人都可以轻松地对其进行解码。在返回给用户的JWT中存储任何敏感信息并不安全。
您似乎误解了JWT进行身份验证的过程。通常,JWT身份验证将取代有状态会话系统。在许多正常流程中,用户使用其用户名和密码进行身份验证,然后服务器为该用户设置会话cookie。当用户返回网站时,他们的浏览器会同时发送会话cookie。服务器看到带有会话cookie的请求,并从某个数据库中查找相关的会话数据。
在许多基于JWT的系统中,用户将像往常一样使用其用户名和密码进行身份验证,但是授权服务器将设置一个包含用户会话数据的JWT的cookie,而不是设置引用数据库中某些内容的会话cookie。这可以包括他们的用户名,他们担任的任何角色或其他必要的数据。
现在,当用户返回网站并且其浏览器显示此新的JWT cookie时,服务器仅需要验证它是否已由授权服务器签名即可信任其中的声明。避免在数据库中查找会话信息有很多好处,其中最重要的是速度。
| 归档时间: |
|
| 查看次数: |
2339 次 |
| 最近记录: |