diff --git a/html/auth.html b/html/auth.html index b1920ec3..a30fe667 100644 --- a/html/auth.html +++ b/html/auth.html @@ -3,12 +3,13 @@ diff --git a/lib/client/storage/_github.js b/lib/client/storage/_github.js index 9c9a7645..69a603e9 100644 --- a/lib/client/storage/_github.js +++ b/lib/client/storage/_github.js @@ -8,10 +8,7 @@ var CloudCmd, Util, join, DOM, CloudFunc, Github, cb; function GitHubProto(callback) { var GitHub = this, - Popup, - Storage = DOM.Storage, - Events = DOM.Events, GH, User; @@ -20,22 +17,9 @@ var CloudCmd, Util, join, DOM, CloudFunc, Github, cb; function init(callback) { Util.exec.series([ load, - GitHub.autorize, - GitHub.getUserData, + GitHub.authorize, Util.exec.ret(callback) ]); - - Events.add('message', function(event) { - if (event.origin === document.location.origin) { - Popup.close(); - GitHub.autorize(function() { - Util.exec.series([ - GitHub.getUserData, - Util.exec.ret(callback) - ]); - }, event.data); - } - }); } function load(callback) { @@ -56,48 +40,39 @@ var CloudCmd, Util, join, DOM, CloudFunc, Github, cb; }); } - - GitHub.autorize = function(callback, code) { + GitHub.authorize = function(code) { Storage.get('token', function(error, token) { - var isContain, + var is = Util.type.string(code), apiURL = CloudFunc.apiURL, URL = '//' + window.location.host + '/auth/github'; - + if (token) { GitHub.Login(token); Util.exec(callback); } else { - if (!code) - code = window.location.search; + is = is && ~code.indexOf('?code='); - isContain = ~code.indexOf('?code='); - - if (!isContain) { - Popup = DOM.openWindow(URL); - if (Popup) - Popup.postMessage('', window.location.origin); - } else { + if (!is) + DOM.openWindow(URL); + else DOM.load.ajax({ type : 'put', url : apiURL + '/auth', data : Util.rmStr(code, '?code='), success : function(data) { - if (data && data.token) { - token = data.token; - - GitHub.Login(token); - Storage.set('token', token); - Util.exec(callback); - } else - Util.log('Worning: token not getted...'); + var token = Util.json.parse(data).data.token; + + GitHub.Login(token); + Storage.set('token', token); + + GitHub.getUserData(callback); } }); - } } }); }; - GitHub.getUserData = function(callback) { + GitHub.getUserData = function(callback) { User.show(null, function(error, data) { var name;