4
在服务器上验证令牌的正确方法是什么?服务器上的JWT登录流和令牌验证
我用我的应用程序JWT令牌机制和这里的如何了其作为现在工作:
- 客户端登录用户名和密码
- Server检查用户名和密码,并与RSA 创建令牌公钥和私钥,并向客户端发送一个新的令牌,其中包含用户电子邮件地址的有效负载 ,然后在 数据库中存储相同的令牌。
- 任何后续的服务器,客户端上的资源请求沿着 jwt令牌发送服务器然后根据用户使用登录的电子邮件地址检查具有 数据库中可用令牌的令牌。
- 然后提供资源给客户端。
我想我在这里失去了一些东西。阅读其他博客帖子,我发现应该使用密钥验证令牌。
几个问题,我有:
- 我不知道是否令牌应该对公共密钥或 私人检查关键
- 当发送JWT令牌的客户我必须公钥发送给 客户端在有效载荷中,因为我使用的是RSA机制?因此,对于资源的每个请求 ,我必须解码令牌并检查公钥 对私钥?
- 在哪些场景中,我需要将令牌存储在数据库中?或者根本不需要在数据库中存储令牌 ?
- 当恶意获取客户端上的令牌 并将其用于登录时会发生什么?
注意:我使用的是前端的后端和angularjs的vanilla java和jax-rs(rest)。谢谢