我是否正确理解了 jwt 在微服务架构中的使用:
在身份验证期间,会为用户创建访问令牌和刷新令牌。刷新令牌存储访问令牌的 id。访问令牌在标头中发送给用户并存储在 WebStorage 或 Cookies 中,而访问令牌存储在某处(数据库或文件)。在服务器上客户端用户的后续请求中,访问令牌被发送到服务器,在那里检查其有效性,然后,如果成功,则检查生命周期,如果有,则发出新的访问令牌。
我是否正确理解了 jwt 在微服务架构中的使用:
在身份验证期间,会为用户创建访问令牌和刷新令牌。刷新令牌存储访问令牌的 id。访问令牌在标头中发送给用户并存储在 WebStorage 或 Cookies 中,而访问令牌存储在某处(数据库或文件)。在服务器上客户端用户的后续请求中,访问令牌被发送到服务器,在那里检查其有效性,然后,如果成功,则检查生命周期,如果有,则发出新的访问令牌。
再会。
据我所知,这个机制是“单独存在的”,除了微观或宏观服务架构之外,它(机制)只需要一个客户端和一个服务器。
根据jwt.io网站,此过程包括以下步骤:
1) 客户端请求授权
2)服务器创建并返回一个令牌
3) 请求时,客户端在请求头中指定这个token
4)服务端通过token对客户端进行授权,并将内容发送给客户端
在我看来,您的具有两个标记的算法原则上适合上述过程。
就我个人而言,在我看来,第二个令牌是多余的,有可能得到一个。此外,将令牌写入数据库并不总是一个好主意,因为 每次收到令牌时都需要查询数据库,即使没有有效负载。
下面我将描述一个在我自己的服务中使用 JWT 的示例:
1) 客户端通过用户和密码请求授权
2) 服务器搜索用户的数据库,检查密码,如果一切正常,然后使用服务器的内部密钥使用 SH256 算法对用户标识符进行编码,从而创建一个令牌。
3)令牌被发送到客户端,而令牌没有写入数据库
4)客户端向内容发起请求,在请求头中指明接收到的token
5)服务器“on-the-fly”解码令牌,如果它接收到正确结构的有效负载,那么它通过标识符在数据库中搜索客户端
6)如果找到用户,则返回内容。
我希望我回答了你的问题。