几天前,我问如何保留 Box 令牌(在 Box Android API 中加载、保存和使用身份验证数据)。现在,当用户想要访问他的 Box 帐户时,我使用此代码进行配置BoxAndroidClient
:
client = new BoxAndroidClient(C, S);
client.authenticate(loadAuth()); //loadAuth() returns BoxAndroidOAuthData object
在获得认证数据后的短时间内,它运行良好。但大约一个小时后,我得到一个AuthFatalFailureException
:
07-06 17:21:01.841: W/System.err(3647): com.box.boxjavalibv2.exceptions.AuthFatalFailureException
07-06 17:21:01.841: W/System.err(3647): at com.box.boxjavalibv2.authorization.OAuthDataController.doRefresh(OAuthDataController.java:275)
07-06 17:21:01.841: W/System.err(3647): at com.box.boxjavalibv2.authorization.OAuthDataController.refresh(OAuthDataController.java:191)
07-06 17:21:01.841: W/System.err(3647): at org.redscorpio.cloudtest.network.Box$2$1.run(Box.java:71)
第 71 行是
client.getOAuthDataController().refresh();
但每次我需要访问 Box 时都会发生这种情况:
client.getFoldersManager().getFolderItems(current.getId(), LIST_REQUEST()).getEntries();
client.getFoldersManager().getFolder("0", DEFAULT_REQUEST);
我怀疑我的令牌在某个时候失效了,但我不知道为什么它不能更新,以及为什么它会在这么短的时间后发生。
我能做些什么来防止这种情况发生?