Oauth 2.0 OAuth2中的永久访问令牌

Oauth 2.0 OAuth2中的永久访问令牌,oauth-2.0,box-api,Oauth 2.0,Box Api,是否可以使用OAuth2获取永久访问令牌?我想在安装过程中使用Box下载文件。安装会捕获特定文件夹中的所有文件。我设置了一个box帐户作为文件夹的所有者,在API v1中,我可以获得一个永久的auth_令牌,以便在可执行文件中重用。但是,使用OAuth2,我似乎只能获得一个1小时的访问令牌和一个刷新令牌。但是,由于最终用户实际上没有访问Box的权限,并且该应用程序是一个桌面应用程序,因此如果令牌已过期,他们就无法进行动态身份验证。我知道还有其他解决方案,但v1api允许我这样做,我希望在V1被弃

是否可以使用OAuth2获取永久访问令牌?我想在安装过程中使用Box下载文件。安装会捕获特定文件夹中的所有文件。我设置了一个box帐户作为文件夹的所有者,在API v1中,我可以获得一个永久的auth_令牌,以便在可执行文件中重用。但是,使用OAuth2,我似乎只能获得一个1小时的访问令牌和一个刷新令牌。但是,由于最终用户实际上没有访问Box的权限,并且该应用程序是一个桌面应用程序,因此如果令牌已过期,他们就无法进行动态身份验证。我知道还有其他解决方案,但v1api允许我这样做,我希望在V1被弃用时不会丢失此功能。

Box的OAuth2实现不会生成永久令牌。但是,正如在v1api中一样,您可以为上载的文件创建一个非Box用户可以访问的链接。您必须在UI中或通过json API将共享访问设置为“打开”

有一种解释如何做的方法。基本上,您可以通过一个小JSON主体将PUT传递给/files/endpoint,如下所示:

{"shared_link": {"access": "open"}}
"shared_link": {
    "url": "https://www.box.com/s/rh935iit6ewrmw0unyul",
    "download_url": "https://www.box.com/shared/static/rh935iit6ewrmw0unyul.jpeg",
    "vanity_url": null,
    "is_password_enabled": false,
    "unshared_at": null,
    "download_count": 0,
    "preview_count": 0,
    "access": "open",
    "permissions": {
        "can_download": true,
        "can_preview": true
    }
您将返回一个json文件体,其中包含一个完整的共享链接部分。大概是这样的:

{"shared_link": {"access": "open"}}
"shared_link": {
    "url": "https://www.box.com/s/rh935iit6ewrmw0unyul",
    "download_url": "https://www.box.com/shared/static/rh935iit6ewrmw0unyul.jpeg",
    "vanity_url": null,
    "is_password_enabled": false,
    "unshared_at": null,
    "download_count": 0,
    "preview_count": 0,
    "access": "open",
    "permissions": {
        "can_download": true,
        "can_preview": true
    }

您可以使用刷新令牌获取持续一小时的新访问令牌和新的刷新令牌

因此,您的桌面应用程序可能需要安全地连接到internet才能读/写

  • 访问令牌
  • 访问令牌到期日
  • 刷新令牌
  • 刷新令牌到期日期**
**每个刷新令牌仅在14天内有效。希望盒子能去掉过期功能


或者,按照最初的建议,将您的文件放在可公开访问的位置。

我有经验的所有其他云提供商都提供静态刷新令牌(例如Google Drive、SkyDrive)。可能不符合规范,但使其更易于正确维护。假设我想在每次使用更新的refreshtoken后保存它-这很好,但是如果在发生故障之前,由于某种原因(例如在移动设备上)出现故障或应用程序被终止,该怎么办。然后,我将不得不请求用户重新执行身份验证流程。