Dropbox.js在Cordova/PhoneGap中的身份验证
Dropbox.js authentication in Cordova/PhoneGap
我正在Cordova/PhoneGap中编写一个应用程序,该应用程序试图使用Dropbox.js从Dropbox中获取文件。Cordova版本为3.0.1,Dropbox.jss版本为0.10.0。我的Javascript在桌面浏览器上运行得很好:
var client = new Dropbox.Client({ key: "<my key>", secret: "<my secret>"} );
client.authenticate(function(error, client) {
...
但在Cordova打包的应用程序中,我收到了一个错误:"你使用的应用程序似乎提交了一个糟糕的请求"。
我怀疑这个问题与重定向url有关,该url在Cordova应用程序中解决了这个问题:
Dropbox.AuthDriver.BrowserBase.currentLocation()
-> file:///android_asset/www/index.html
以file:///开头的URL将无法与Dropbox API一起正常工作,即使我将它们添加到Dropbox API控制台中的OAuth重定向URI中
如果我之前知道uid和令牌,Cordova应用程序确实可以正常工作:
var client = new Dropbox.Client({
key: "<my key",
secret: "<my secret>",
token: "<token>",
uid: "<uid>"
});
client.authenticate(function(error, client) {
...
这样我就可以很好地读取我的dropbox文件。问题是代币不会永远存在,我想从我的应用程序中获得一个新的代币。
根据这次讨论,这个问题应该已经在dropbox.js(0.9.2)的早期版本中解决了。但我仍然遇到了它。我想知道我是否应该使用API有点不同,但我不知道如何使用。
Dropbox.js在这次提交中添加了一个重定向URL选项。我只是不知道我应该在我的Cordova应用程序中放什么。这个file:///android_asset/www/index.html不会工作,因为Dropbox API不允许使用文件URL。
Simon McDonald对这个问题的回答可能会有所帮助。但这意味着我必须有一个带有dropbox.js登录功能的外部服务器托管页面。或者我可以使用主dropbox web登录页面吗?
dropbox.js 0.10.1对Cordova进行了一些修复。
我们刚刚设置了一个页面,当file://不起作用时,您可以在嵌入式WebViews中使用该页面作为OAuth 2重定向URL。
https://www.dropbox.com/1/oauth2/redirect_receiver
- Sencha Touch和远程服务器上的身份验证
- Javascript清除缓存以清除基本身份验证凭据
- REST的面向公众的身份验证机制
- 当需要身份验证时,ui路由器不会重定向
- 使用Facebook登录,但仍然可以获得:“;此标识池不支持未经身份验证的访问“;
- AJAX HTTP基本身份验证解决方案
- 身份验证后获取Facebook图片
- 如何对单个页面进行密码保护(这不是身份验证系统的一部分)
- Twitter应用程序专用身份验证
- Passport.js成功的身份验证根本没有调用
- 通过JavaScript访问需要身份验证的页面
- UIWebview赢得't通过基本身份验证加载动态加载的资源(通过jQuery mobile)
- 使用JavaScript捕获基本身份验证凭据
- javascript中的Spotify身份验证
- ServiceStack JavaScript服务器事件客户端的身份验证
- Twitter API 1.1无法对您2进行身份验证
- 针对Grails后端的PhoneGap身份验证模式
- Dropbox.js在Cordova/PhoneGap中的身份验证
- Javascript移动应用程序(Phonegap)的SAML身份验证
- Phonegap + Sencha + Android: ajax请求与基本访问身份验证失败