Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oauth 2.0 Box API OAuth2:多个重定向URI,持久刷新令牌_Oauth 2.0_Box Api - Fatal编程技术网

Oauth 2.0 Box API OAuth2:多个重定向URI,持久刷新令牌

Oauth 2.0 Box API OAuth2:多个重定向URI,持久刷新令牌,oauth-2.0,box-api,Oauth 2.0,Box Api,关于测试环境中Box的OAuth2API,我有两个问题 是否可以有多个重定向URI地址?我希望使用一个地址进行生产(例如),一个用于正在进行的开发()和一个用于自动UI测试()。就我所见,唯一的方法是创建三个不同的Box应用程序——有没有更简单的方法?顺便说一句,Dropbox和Google Drive都支持多个重定向URI 我有一套自动测试,我想每天运行几次。我面临的挑战是,每次运行这些测试时,我的刷新令牌都会失效,我不能再次使用它——这意味着我不能在几个小时后运行同一组测试,而不手动获取新令

关于测试环境中Box的OAuth2API,我有两个问题

  • 是否可以有多个重定向URI地址?我希望使用一个地址进行生产(例如),一个用于正在进行的开发()和一个用于自动UI测试()。就我所见,唯一的方法是创建三个不同的Box应用程序——有没有更简单的方法?顺便说一句,Dropbox和Google Drive都支持多个重定向URI
  • 我有一套自动测试,我想每天运行几次。我面临的挑战是,每次运行这些测试时,我的刷新令牌都会失效,我不能再次使用它——这意味着我不能在几个小时后运行同一组测试,而不手动获取新令牌。一种解决方案是将刷新令牌保存在一个文件中,这样我就可以在测试会话中重用它。但是:
    • 这真的很麻烦
    • 如果不同的开发人员在不同的机器上运行这些测试,并且没有真正工作的通用文件系统
    • 再说一次,无论出于什么原因,谷歌硬盘或Dropbox似乎都没有问题
  • 这是目前不可能的,我同意这将是很好的
  • 您最好的选择是将访问/刷新令牌对保存到一个文件或数据库(在没有公共文件系统的情况下)。授权实现者如何发布刷新令牌,如果他们发布刷新令牌的话(我认为Dropbox不会)。而Box的实现使集成测试变得有点困难,我认为它最终与规范最接近

  • 对于第一个问题,您可以通过使用
    redirect\u uri
    query参数来接近您想要的内容。尽管您无法提供任意重定向URI,但您可以在应用程序控制台中提供一个与重定向URI具有相同基本URL的URI

    从:

    只要基本url与在应用程序控制台中注册的uri匹配,请求中也会接受通配符重定向uri值。如果传入请求重定向uri参数,则可以将的注册重定向uri动态重定向到


    对于您的第二个问题,John是对的-在刷新令牌被使用后,Box将使其无效。虽然这可能会让人恼火,但它也更安全。

    我在#2中使用的不太优雅的解决方案是使用自动UI测试(Selenium),将我的应用程序连接到Box。然后,我将新创建的令牌用于一些后端测试。很难看,但大多数时候都能用。