2016-03-27 13:54:35 +02:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
var DropboxLink = require('./dropbox-link');
|
|
|
|
|
|
|
|
var AuthReceiver = {
|
|
|
|
receive: function() {
|
|
|
|
var opener = window.opener || window.parent;
|
|
|
|
if (location.href.indexOf('state=') >= 0) {
|
|
|
|
DropboxLink.receive();
|
|
|
|
} else {
|
2016-03-27 16:47:29 +02:00
|
|
|
var message = this.urlArgsToMessage(window.location.href);
|
2016-03-27 13:54:35 +02:00
|
|
|
opener.postMessage(message, window.location.origin);
|
2016-03-27 18:03:58 +02:00
|
|
|
window.close();
|
2016-03-27 13:54:35 +02:00
|
|
|
}
|
2016-03-27 16:47:29 +02:00
|
|
|
},
|
|
|
|
|
|
|
|
urlArgsToMessage: function(url) {
|
|
|
|
var message = {};
|
2016-07-17 13:30:38 +02:00
|
|
|
url.split(/[\?#&]/g).forEach(part => {
|
2016-03-27 16:47:29 +02:00
|
|
|
var parts = part.split('=');
|
|
|
|
if (parts.length === 2) {
|
|
|
|
message[parts[0]] = parts[1];
|
|
|
|
}
|
|
|
|
});
|
|
|
|
return message;
|
2016-03-27 13:54:35 +02:00
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
module.exports = AuthReceiver;
|