1

我是 dot net MVC 的新手,我正在开发一个需要 Box 集成的应用程序,其中用户使用 oauth2 身份验证流程授权我们的应用程序。我获取访问令牌和刷新令牌并将它们保存到我的数据库中以供进一步离线访问,这样用户就不必再次验证应用程序。

现在,我正在使用 Box Windows SDK v2 来获取用户的文件和文件夹列表。这是我能够获取 box 的 rot 文件夹的代码块。

var config = new BoxConfig(clientId, clientSecret, new Uri("http://localhost:49671/CloudBox/Callback/"));
//Pls note, here accessToken and refreshToken are fetched from database
OAuthSession session = new OAuthSession(accessToken, refreshToken, 3600, "bearer");
BoxClient client = new BoxClient(config, session);
BoxFolder boxFolder = client.FoldersManager.GetInformationAsync("0").Result;

到目前为止一切都很好。

现在,当访问令牌过期(因为它仅在 3600 秒内有效),并且我尝试再次获取根文件夹时,Box SDK 会自动刷新访问令牌并刷新令牌而不告诉我。并为我提供了根文件夹对象。

此时我得到了根文件夹,但我不知道 Box SDK 已经更新了访问令牌和刷新令牌。我的数据库中仍然有旧的访问令牌和刷新令牌。它们没有更新。我迷路了。现在我留下了那些旧的无效访问令牌和刷新令牌。

请帮忙。我怎么知道 Box SDK 已经更新了访问令牌和刷新令牌?这样我就可以在我的数据库中更新它们以供将来使用。

如果您可以提供一个存储访问令牌和刷新令牌的工作示例 MVC 应用程序,那就太好了。您可以提供需要放置在控制器中的代码块。我希望,我将能够整合它们。

提前致谢。

4

1 回答 1

0

您可以在刷新令牌后使用 Box.V2 触发的事件:

SessionAuthenticated :在获取一组新的身份验证令牌和刷新令牌对时触发

SessionInvalidated:当验证会话无效时触发

于 2015-03-18T20:53:40.060 回答