使用Phonegap进行Dropbox身份验证

时间:2016-05-05 11:23:55

标签: javascript cordova dropbox dropbox-api

我的问题是,当我试图通过我的Phonegap应用程序从Dropbox获取access_token时,我收到以下错误:

  

不允许加载本地资源:file:///android_asset/www/index.html#access_token= {MY_ACCESS_TOKEN}& token_type = bearer& state =%3CCSRF + token%3E& uid = 130101032

document.addEventListener("deviceready", onDeviceReadyLoginDropbox, false);
    function onDeviceReadyLoginDropbox() {
         var url = document.URL, 
        shortUrl=url.substring(0,url.lastIndexOf("/"));

    console.log(cordova.InAppBrowser);

    var ref = cordova.InAppBrowser.open('https://www.dropbox.com/1/oauth2/authorize?client_id={APP_KEY}&response_type=token&redirect_uri='+shortUrl+'/index.html&state=%3CCSRF%20token%3E', "_blank");
    }

所以,一切正常,但重定向不是这样,这里的解决方法是什么?我用JS读到你无法访问本地文件,所以当重定向不工作时我怎么能获得访问令牌?唯一可能的是仅使用JS。

1 个答案:

答案 0 :(得分:2)

您必须处理来自cordova.InAppBrowser的重定向事件。

您可以在页面加载时添加事件处理程序。

您必须检查登录成功(您可以在网址中搜索“ACCESS_TOKEN”), 并从成功网址中获取。

代码就像这样:

    ref.addEventListener('loadstart', function(event) {
       // you have here url at event.url

       if(event.url.indexOf('success') > -1){
         // take token


       }

 });

您可以找到所有活动here