我是dot net MVC的新手,我正在开发一个需要Box集成的应用程序,用户使用oauth2身份验证流程授权我们的应用程序。 我获取访问令牌并刷新令牌并将其保存到我的数据库以进一步离线访问,以便用户不必再次验证应用程序。
现在,我正在使用Box Windows SDK v2来获取用户的文件和文件夹列表。 这是代码块,通过它我可以获得盒子的腐烂文件夹。
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应用程序,那就太好了。您可以提供需要放在控制器中的代码块。我希望,我能够整合它们。
提前致谢。
答案 0 :(得分:0)
也许这个样本会有所帮助。本文显示刷新令牌持续60天: A Simple Box.Com C# API Wrapper
答案 1 :(得分:0)
刷新令牌后,您可以使用Box.V2触发的事件:
SessionAuthenticated:获取一组新的身份验证令牌和刷新令牌对时触发
SessionInvalidated:当身份验证会话失效时触发