gpt4 book ai didi

c# - 使用 DotNetOpenAuth 刷新授权后收到的新 RefreshToken 如何处理

转载 作者:太空狗 更新时间:2023-10-30 01:21:32 25 4
gpt4 key购买 nike

每当我们使用 DotNetOpenAuth 刷新我们的授权时,响应中都会包含一个新的 Oauth2.0 RefreshToken。由于 RefreshToken 本身是一个长期存在的 token ,我们在每次请求后获得新的 RefreshToken 的原因是什么?

处理这个新的 RefreshToken 的最佳方法是什么,我们应该在每次刷新授权时存储新的 RefreshToken 还是应该保留旧的 RefreshToken 并忽略新的?

另请参阅这段示例代码以提供一些上下文。

var serviceDescription = new AuthorizationServerDescription
{
ProtocolVersion = ProtocolVersion.V20,
TokenEndpoint = new Uri(Constants.TokenEndPoint)
};

var client = new WebServerClient(serviceDescription,
Constants.ClientId, Constants.ClientSecret);

var authorization = new AuthorizationState()
{
//Insert our stored RefreshToken
RefreshToken = TokenStore.Instance.RefreshToken
};

if (client.RefreshAuthorization(authorization))
{
//Store or ignore the new RefreshToken?
var NewRefreshToken = authorization.RefreshToken;
}

最佳答案

您在响应中返回的刷新 token 可能包含也可能不包含在响应中。如果它存在,规范说明您必须为所有 future 的 token 刷新使用新的刷新 token 。如果您再次使用旧的,授权服务器可能会完全撤销授权。

根据我对工作组讨论的理解,这样做的原因是,通过定期更改客户端上的刷新 token ,授权服务器可以检测到刷新 token 是否意外泄露给了第三方。由于批准的客户端和第 3 方都将使用相同的刷新 token ,如果一方收到新的刷新 token ,另一方仍将使用旧的。当旧的进入时,有两个客户端使用相同的刷新 token 这一事实会提示 auth 服务器存在安全漏洞,并可能将其关闭。

关于c# - 使用 DotNetOpenAuth 刷新授权后收到的新 RefreshToken 如何处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15278918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com