parent
c558ed2069
commit
7c2d581b17
@ -0,0 +1,64 @@
|
||||
/**
|
||||
* This framework is intended to work and handle authentication with the cloud view engine
|
||||
* DEPENDENCIES :
|
||||
* rpc.js HttpClient, urlparser
|
||||
* @TODO: A registration process maybe required
|
||||
*/
|
||||
|
||||
/**
|
||||
* @param id service identifier
|
||||
* @param key callback/ user key
|
||||
*/
|
||||
jx.cloudview = { popup:null,cache: {},oauth:{}}
|
||||
jx.cloudview.oauth.init = function (id, key,callback) {
|
||||
var url = "https://the-phi.com/cloud-view/" +id+"/get"
|
||||
var httpclient = HttpClient.instance()
|
||||
httpclient.setHeader("platform",navigator.appName)
|
||||
httpclient.post(url, function (x) {
|
||||
|
||||
var url = x.responseText
|
||||
|
||||
var oauth_uri = url.match(/redirect_uri=(.+)&/)[1];
|
||||
|
||||
url = url.replace(oauth_uri, key)
|
||||
|
||||
jx.cloudview.handler = null
|
||||
jx.cloudview.popup = window.open(url, 'oauth', 'width=405, height=900')
|
||||
|
||||
jx.cloudview.oauth.listen(key,callback)
|
||||
})
|
||||
}
|
||||
/**
|
||||
* @param key
|
||||
*/
|
||||
jx.cloudview.oauth.listen = function (key,callback) {
|
||||
if (jx.cloudview.handler != null) {
|
||||
clearInterval(jx.cloudview.handler)
|
||||
}
|
||||
jx.cloudview.handler = setInterval(function () {
|
||||
try {
|
||||
|
||||
if (jx.cloudview.popup.location.search.match(/code=/)) {
|
||||
clearInterval(jx.cloudview.handler)
|
||||
var p = urlparser(jx.cloudview.popup.location.search)
|
||||
|
||||
var url = (["https://the-phi.com/cloud-view/", p.state, "/set/authentication"]).join('')
|
||||
var http = HttpClient.instance()
|
||||
http.setHeader('code', encodeURIComponent(p.code))
|
||||
http.setHeader('pid', 'authentication')
|
||||
http.setHeader('platform', navigator.appName)
|
||||
http.setHeader('redirect_uri', key)
|
||||
http.post(url, function (x) {
|
||||
|
||||
var info = JSON.parse(x.responseText)
|
||||
callback(info)
|
||||
// jx.dom.set.value('name', info.user.uii)
|
||||
})
|
||||
|
||||
}
|
||||
jx.cloudview.popup.close()
|
||||
} catch (error) {
|
||||
// console.log(error)
|
||||
}
|
||||
},1500)
|
||||
}
|
Loading…
Reference in new issue