1

我正在开发一个对服务器上的用户数据进行加密的 Web 应用程序。当用户通过表单身份验证登录时,我有他们的密码并且可以解密数据。

但是,如果用户通过 OAuth2 授权应用程序,则原始密码仅在创建访问和刷新令牌期间可用。因此,在这一步中,我生成另一个用于解密数据的密钥并将其存储在访问令牌中(因此我不会发送用户密码,并且可以在需要时使该密钥过期)。

但是,一旦访问令牌过期并且使用刷新令牌创建一个新令牌,我就不再拥有创建另一个密钥的用户密码,这个过程就会中断。使用 DotNetOpenAuth 我已经能够将密钥存储在访问令牌中,但不能存储在刷新令牌中。

是否可以在刷新令牌中存储额外的数据?我可以想到另一种方法来做到这一点,即客户端在首次使用 OAuth 授权时从服务器获取密钥,但我不喜欢这种方法,因为它破坏了访问流程。客户端必须安全地存储这些附加数据,并且必须在每次请求时重新提交。

4

0 回答 0