Oauth 2.0 OAuth2.0在加密之前,刷新令牌的内容格式应该是什么?

Oauth 2.0 OAuth2.0在加密之前,刷新令牌的内容格式应该是什么?,oauth-2.0,oauth2,Oauth 2.0,Oauth2,我正在开发一个OAuth2.0服务器。刷新令牌的格式应该是什么?加密应该使用什么加密算法?OAuth 2.0没有对令牌格式或加密实施任何限制。规范中完全忽略了加密,因为通信应该使用TLS进行保护 另外-如果你真的不需要实施,就不要实施自己。如果您的资金允许,请选择一个开源库,甚至是一个供应商产品 话虽如此,请看下面的例子。这是大多数人使用的格式。您也可以完全不考虑格式,只需使用不透明字符串,然后在授权服务器中实现令牌自省。 至于加密,什么都可以。大多数实现至少支持HS256、RS256和ES25

我正在开发一个OAuth2.0服务器。刷新令牌的格式应该是什么?加密应该使用什么加密算法?

OAuth 2.0没有对令牌格式或加密实施任何限制。规范中完全忽略了加密,因为通信应该使用TLS进行保护

另外-如果你真的不需要实施,就不要实施自己。如果您的资金允许,请选择一个开源库,甚至是一个供应商产品

话虽如此,请看下面的例子。这是大多数人使用的格式。您也可以完全不考虑格式,只需使用不透明字符串,然后在授权服务器中实现令牌自省。
至于加密,什么都可以。大多数实现至少支持HS256、RS256和ES256对JWT令牌进行签名。在大多数真实场景中,您不需要加密令牌,签名就足够了。

经过一段时间的努力,我终于找到了答案。有两种方法

  • 或者将构造访问令牌所需的所有内容(除了可以直接派生/计算的内容)放入刷新令牌中,并使用全局或租户级别的对称密钥对其进行加密

    好处:

    a。不需要存储

    b。由于不需要与DB接触,因此性能更好。它只是解密和创建访问令牌

    问题/缺点

    a。无法跟踪已发布的刷新令牌

    b。无法使已发布的刷新令牌无效

  • 将与刷新令牌相关的属性存储在DB中,并作为OAuth服务器的响应,返回加密的刷新令牌ID

    ID | | | | | |令牌计数| | | | |主体| |客户端ID | |自定义属性(如果需要)


  • 我们还可以实现其他属性,但这必须让那些想要实现自己的刷新令牌流的人有一点想法

    这是可靠的建议,我唯一的评论,我将用粗体字写下“不要自己实现…”