我正在开发一个加密服务器上用户数据的Web应用程序。当用户通过表单auth登录时,我有他们的密码,可以解密数据。
如果用户通过OAuth2授权应用,则原始密码仅在创建访问和刷新令牌期间可用。因此,在此步骤中,我生成另一个用于解密数据的密钥并将其存储在访问令牌中(因此我不会发送用户密码,如果需要可以使此密钥到期)。
但是,一旦访问令牌过期并且刷新令牌用于创建新令牌,我就不再拥有用户密码来创建另一个密钥,并且此过程会中断。使用DotNetOpenAuth我已经能够将密钥存储在访问令牌中,但不能存储在刷新令牌中。
是否可以在刷新令牌中存储额外数据?我可以想到另一种方法来做到这一点,客户端在第一次使用OAuth授权时从服务器获取密钥,但我不喜欢这种方法,因为它打破了访问流程。客户端必须安全地存储这些附加数据,并且必须在每次请求时重新提交。