gpt4 book ai didi

c# - 如何保留 DotNetOpenAuth OAuth2 刷新和访问 token

转载 作者:太空宇宙 更新时间:2023-11-03 10:58:04 24 4
gpt4 key购买 nike

我一直在使用 IAuthorizationState (AuthorizationState) 和 WebServerClient,我正在尝试找出保留授权状态信息的正确方法,以便在检索时框架可以对需要进行的调用做出最佳决定获取网络服务调用所需的访问 token 。

假设我从头开始并且数据库中还没有持久化 token ,我将执行以下步骤:

  1. WebServerClient.PrepareRequestUserAuthorization - 用户被发送到 google。 url 包含刷新 token 的离线参数
  2. ProcessUserAuthorization - 我从 google 获取代码参数(授权代码)并调用以获取 AccessToken 和 RefreshToken 以及到期日期

如果我现在想保留它,我应该保留整个对象以便日期也保留下来,还是两个标记就足够了?

当用户执行另一个需要授权状态信息的操作时,我现在可以执行数据库查找来检索 token 。我是否总是需要在检索到 token 后调用 RefreshAuthorization 方法,或者我是否应该执行自己的逻辑来查看日期是否已过期(假设我也保留了这些日期)?

更新 1:

我最终将日期保留在数据库中,以便 IAuthorizationState 可以完全恢复到其最后状态。然后我调用

client.RefreshAuthorization(auth, TimeSpan.FromSeconds(MinRefreshTimespanInSec));

如果 token 最终被刷新,则返回 true;如果 token 仍然有效且不需要刷新,则返回 false。变量 auth 是从 DB 恢复的授权状态。

最佳答案

如果您存储访问 token 过期日期,您就知道何时该用刷新 token 交换新访问 token :这样您就不必为最终用户额外往返 oauth2 提供程序而烦恼。

关于c# - 如何保留 DotNetOpenAuth OAuth2 刷新和访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18699581/

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