繁体   English   中英

如何使用Box.com Java SDK自动进行身份验证

[英]How to auto-authenticate with box.com java sdk

我的问题类似于这篇文章: 如何在没有Box授权页面的情况下获取访问令牌

在那篇文章中,他问:

我已经被授予访问(协作)文件夹中的权限。 我需要的是每天访问该文件夹并从中获取文件。 现在,我生成的开发人员令牌将在1小时后过期。 有没有一种方法可以在没有第一回合的情况下获得授权代码,而这需要用户界面。 这样,每当我提取文件时,我都可以刷新访问权限。

“ Skippy Ta”中获得最高评分的答案告诉了我以下内容外,我需要了解的大部分信息:

如何使用开发者令牌进行身份验证以及如何刷新? 从我下载的HelloWorld示例应用程序的github存储库( https://github.com/box/box-box-java-sdk-v2 )中,我看到了以下两个步骤:

boxClient.authenticate(boxOAuthToken); 

进行初始身份验证,以及

boxClient.addOAuthRefreshListener(new OAuthRefreshListener() {
    @Override
    public void onRefresh(IAuthData newAuthData) {
        // TODO: Update the stored access token.
    }
});

刷新。

我很难将所有这些放在一起。 首先,authenticate方法不接受String boxOAuthToken,而是接受IAuthData对象,无论它是什么。 因此,我无法进行初始身份验证。

即使我要实现初始身份验证,也无法刷新,因为身份验证后我不知道如何访问该令牌以存储该令牌,并且如果我将该令牌存储为字符串,则不会知道如何将其包装在适当的对象中,并进行更新。

// TODO: Update the stored access token.

在上面发表评论。 谢谢你的尽心帮助。

您可以看一下Javafx登录UI: https : //github.com/box/box-box-java-sdk-v2/tree/master/BoxJavaFxOAuth

但是无论如何,如果您需要根据访问令牌构建BoxOAuthToken对象并刷新令牌并从中进行身份验证,则可以执行以下操作:

HashMap<String, String> tokenMap = new HashMap<String, String>();
tokenMap.put("access_token", access);
tokenMap.put("refresh_token", refresh);
BoxOAuthToken token = new BoxOAuthToken(tokenMap);
boxClient.authenticate(token);

至于刷新,SDK会自动刷新。 您唯一需要担心的是您的应用程序退出并且需要保留身份验证。 此时,您可以保存oauth令牌。 刷新侦听器用于为您更新oauth令牌,因此在需要保存oauth的那一点上,您将拥有最新的oauth数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM