java - BOX API - 让外部用户选择他们的文件,然后像 Dropbox 选择器一样以编程方式下载选定的文件
问题描述
您好我正在实现 Box API,我想让外部用户选择他们现有的文件,然后想在我的应用程序中下载这些文件。
为此,我有企业应用程序,并且正在使用 JWT 授权。
我可以使用此代码生成访问令牌
JWTEncryptionPreferences jwtPreferences = new JWTEncryptionPreferences();
jwtPreferences.setPublicKeyID("xxxx");
jwtPreferences.setPrivateKeyPassword("xxx");
jwtPreferences.setPrivateKey("-----BEGIN ENCRYPTED PRIVATE KEY-----\nxxxxxx\n-----END ENCRYPTED PRIVATE KEY-----\n");
jwtPreferences.setEncryptionAlgorithm(EncryptionAlgorithm.RSA_SHA_256);
BoxConfig boxConfig = new BoxConfig("xxxx", "xxxx", "xxx", jwtPreferences);
try {
BoxDeveloperEditionAPIConnection api = BoxDeveloperEditionAPIConnection.getAppEnterpriseConnection(boxConfig);
LOG.info("token --" + api.getAccessToken());
return api;
} catch (BoxAPIException e) {
}
然后我将此令牌发送到前端并使用该令牌打开内容选择器。代码与以下链接相同
https://developer.box.com/docs/box-content-picker#section-sample-html
现在我可以像演示一样打开选择器了。但它特定于一个帐户。我想为 Box 的外部用户实现相同的功能。
这可能吗?
我在这里缺少什么?
解决方案
好的。我找到了解决方案。如果可以帮助任何人,请发布此内容。
我发现JWT
为现有的应用程序用户挑选并不是一个好的选择。
所以我必须选择OAuth2
对外部用户进行身份验证
来自文档:
何时使用 在以下情况下选择 OAuth 2 作为您的身份验证方法:
- 您只与拥有现有 Box 帐户的用户合作。
推荐阅读
- java - 对数组进行排序(不排序或创建对象)并保留原始索引
- excel - 宏给出错误“运行时错误1004:对象'_Global'的方法'范围'失败
- xamarin.forms - Xamarin Forms 确定文本将消耗的大小
- sql - 两列之间的持续时间,格式为 hhmmss
- microsoft-graph-api - MS Graph API、应用程序类型、管理员同意、权限“Contacts.ReadWrite”导致管理员用户以外的任何用户的访问被拒绝
- java - 无法解决android studio中的依赖关系,为什么会发生这种情况?
- azure-devops - Azure Devops:是否可以将 yaml 模板嵌套在另一个 yaml 模板中?
- python-3.x - Snowflake Authentication Token expired (390114) - Snowflake-SQLAlchemy 是否有心跳代码?
- reactjs - 中继编译器确实生成自动生成的文件
- react-native - 如何从我在另一个类中创建的特殊组件返回值