2016-05-05 13 views
1

mein Problem ist, dass wenn ich versuche, von Dropbox zu bekommen access_token, mit meiner Phonegap Anwendung, bekomme ich folgende Fehlermeldung:Dropbox-Authentifizierung mit Phonegap

Not allowed to load local resource: 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"); 
    } 

Also, alles funktioniert gut, aber die Umleitung ist nicht so, was ist die Problemumgehung hier? Ich habe gelesen, dass Sie mit JS nicht auf lokale Dateien zugreifen können. Wie kann ich dann Zugriffstoken bekommen, wenn die Weiterleitung nicht funktioniert? Es ist nur möglich, nur JS zu verwenden.

Antwort

2

Sie müssen Redirect-Ereignis von cordova.InAppBrowser behandeln.

Sie können ihn Event-Handler beim Laden der Seite hinzufügen.

Sie müssen Login-Erfolg überprüfen (Sie können "ACCESS_TOKEN" in URL suchen), und nehmen Sie es von der Erfolg-URL.

-Code es so ist:

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

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


     } 

}); 

können Sie alle Veranstaltungen finden here.

+0

Danke für die Antwort, es funktionierte genau so, wie ich es wollte! – VSmoL