我正在开发一个仅客户端的 Web 应用程序,该应用程序将使用 Dropbox JavaScript SDK 允许用户将其工作存储在 Dropbox 的文件夹中(位于
/Apps/MyAppName
)。 我已经这样做了:
http://localhost:myport/my-redirect-page.html
。现在我想将代码从测试存储库迁移到我的真实项目中,该项目将托管在
myappname.github.io
。 我的客户端 JavaScript 需要应用程序密钥,因此任何查找它的人都可以看到它。 据我了解,我有两个选择:
Google Drive 通过允许每个应用程序生成多个 API 密钥并为每个应用程序分配不同的 URL 来解决这一问题,这样您就可以拥有一个从不共享的开发者应用程序和一个无法与本地主机一起使用的生产应用程序。 据我所知,Dropbox 似乎没有这个功能;每个应用程序只有一个应用程序密钥。
我是否误解了情况和/或安全问题? 如果没有,我唯一的解决方案是制作第二个应用程序仅用于测试吗? 也许最好的答案还会提到我的问题表明我不知道的客户端 Dropbox JavaScript SDK 的任何相关最佳实践。
Dropbox 不支持在单个应用程序注册中为不同的应用程序密钥注册单独的重定向 URL。一些开发人员使用单个应用程序注册,并在其上设置了所有重定向 URL,而另一些开发人员则注册多个应用程序(例如,一个用于开发,一个用于生产)。
如果您有特殊的安全问题,我建议咨询安全专家。
也就是说,如果您担心有人获取您的应用程序密钥并使用本地主机重定向 URL 冒充您的应用程序,那么创建两个单独的应用程序注册是解决该问题的正确方法。
值得注意的是,应用程序密钥(也称为客户端 ID 或消费者密钥)通常实际上是公开的,发布的应用程序使用的重定向 URL 也是如此。 (这种保护来自于这样一个事实:其他人无法将他们控制的其他重定向 URL 添加到您的应用程序注册中,因为他们无法登录到您的帐户。)至于任何本地主机重定向 URL 本身,任何此类重定向 URL 都是使用有限,因为首先需要本地访问才能访问实践中的内容。