Box API OAuth2:多个redirect_uris,持久刷新令牌

时间:2015-05-19 11:33:20

标签: oauth-2.0 box-api

我在测试环境中有两个关于Box的Oauth2 API的问题。

  1. 是否可以拥有多个redirect_URI地址?我想使用一个地址进行制作(例如https://my_site.com/box_redirects_here),一个用于正在进行的开发(http://localhost:8000/box_redirects_here),另一个用于自动UI测试(http://localhost:8001/box_redirects_here)。据我所知,唯一的方法是创建三个不同的Box应用程序 - 有更简单的方法吗?顺便说一下,Dropbox和Google Drive都支持多个重定向URI。
  2. 我有一套自动测试,我想每天跑几次。我面临的挑战是,每次运行这些测试时,我的refresh_token都会失效,我无法再次使用它 - 这意味着我几小时后无法运行相同的测试集而无需手动获取新的测试令牌。一种解决方案是保存刷新令牌,例如在文件中,因此我可以在测试会话中重复使用它。但:
    • 这真的很麻烦。
    • 如果不同的开发人员从不同的计算机上运行这些测试,而没有通用的文​​件系统并不能真正起作用。
    • 同样,无论出于何种原因,这似乎不是Google云端硬盘或Dropbox的问题。

2 个答案:

答案 0 :(得分:3)

  1. 目前这不可行,我同意这会很好。
  2. 您最好的选择是将访问/刷新令牌对保存到文件或数据库(如果没有通用文件系统。)OAuth2 spec授予实施者wide latitude他们如何发行刷新令牌,如果他们发出令牌(我不认为Dropbox会这样做。)虽然Box的实施使集成测试有点挑战,但我认为它最终会对规范进行最接近&# 39; s recommendations

答案 1 :(得分:2)

对于您的第一个问题,您可以使用redirect_uri查询参数来接近您想要的内容。虽然您将无法提供任意重定向URI,但您可以在应用控制台中为其提供与重定向URI具有相同基本URL的URI。

来自OAuth tutorial

  只要基本URL与应用程序控制台中注册的URI匹配,

请求中也接受通配符redirect_uri值。如果将https://www.myboxapp.com注册的redirect_uri传递到请求redirect_uri参数,则可以动态地重定向到https://www.myboxapp.com/user1234

对于第二个问题,John是对的 - Box在使用后使刷新令牌无效。虽然这可能很烦人,但它也更安全。