| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219 | 
							- <!DOCTYPE html>
 
- <html lang="zh-CN">
 
- <head>
 
-     <meta http-equiv="X-UA-Compatible" content="IE=edge" />
 
-     <meta charset="UTF-8">
 
-     <title></title>
 
-     <script src="../o2_core/o2.min.js"></script>
 
-     <script src="js/sso.min.js"></script>
 
-     <script>
 
-         o2.addReady(function(){
 
-             var requestJson = function ( root, path, successCallback, failureCallback, errorCallback, method ) {
 
-                 var locate = window.location;
 
-                 var protocol = locate.protocol;
 
-                 var addressObj, address;
 
-                 var defaultPort = layout.config.app_protocol==='https' ? "443" : "80";
 
-                 if( root === "x_program_center" ){
 
-                     addressObj = layout.centerServer;
 
-                     var appPort = addressObj.port || window.location.port;
 
-                     address = protocol+"//"+(addressObj.host || window.location.hostname)+((!appPort || appPort.toString()===defaultPort) ? "" : ":"+appPort)+ "/x_program_center";
 
-                 }else{
 
-                     addressObj = layout.serviceAddressList[root];
 
-                     var appPort = addressObj.port || window.location.port;
 
-                     address = protocol+"//"+(addressObj.host || window.location.hostname)+((!appPort || appPort.toString()===defaultPort) ? "" : ":"+appPort)+addressObj.context;
 
-                 }
 
-                 var res = new Request.JSON({
 
-                     url: o2.filterUrl(address+ path),
 
-                     secure: false,
 
-                     method: method || "GET",
 
-                     noCache: true,
 
-                     withCredentials: true,
 
-                     onSuccess: function(responseJSON, responseText){
 
-                         if( successCallback )successCallback( responseJSON, responseText );
 
-                     }.bind(this),
 
-                     onFailure: function(xhr){
 
-                         if( failureCallback )failureCallback(xhr)
 
-                     }.bind(this),
 
-                     onError: function(text, error){
 
-                         if( errorCallback )errorCallback(text, error)
 
-                     }.bind(this)
 
-                 });
 
-                 res.send();
 
-             }
 
-             var who = function( unloginCallback, loginCallback, failureCallback){
 
-                 requestJson(
 
-                     "x_organization_assemble_authentication",
 
-                     "/jaxrs/authentication",
 
-                     function(responseJSON, responseText){
 
-                         if( responseJSON.data.tokenType === "anonymous" ){
 
-                             unloginCallback()
 
-                         }else{
 
-                             loginCallback()
 
-                         }
 
-                     }.bind(this),
 
-                     function(xhr){
 
-                         failureCallback()
 
-                     }.bind(this),
 
-                     function(text, error){
 
-                         failureCallback()
 
-                     }.bind(this)
 
-                 );
 
-             };
 
-             var login = function(){
 
-                 var uri = new URI(window.location.toString());
 
-                 var token = uri.getData("token");
 
-                 var enterId = uri.getData("enterId");
 
-                 // var redirect = uri.getData("redirect");
 
-                 var loginCallback = function (token, enterId) {
 
-                     requestJson(
 
-                         "x_organization_assemble_authentication",
 
-                         "/jaxrs/andfx/moa/sso/token/"+token+"/enter/"+enterId+"&date="+(new Date()).getTime(),
 
-                         function(responseJSON, responseText){
 
-                             var result = responseJSON.data.id;
 
-                             if(result){
 
-                                 redirectTo();
 
-                             }else{
 
-                                 $("ssoerror").set("html","单点失败!"+responseJSON.message + "<br/>地址:" + window.location).show();
 
-                             }
 
-                         }.bind(this),
 
-                         function(xhr){
 
-                             var json = JSON.parse(xhr.responseText);
 
-                             $("ssoerror").set("html", "单点登录失败: " + json.message + "<br/>" + (json.prompt || "") + "<br/>地址:" + window.location ).show();
 
-                         }.bind(this),
 
-                         function(text, error){
 
-                             $("ssoerror").set("html", text + "<br/>地址:" + window.location).show();
 
-                         }.bind(this)
 
-                     );
 
-                 };
 
-                 //调用
 
-                 function feixinGetTokenFun() {
 
-                     var param = {
 
-                         backid: 'deliveryToken',
 
-                         backFunc: 'deliveryToken' //回调方法
 
-                     };
 
-                     if (window.WebContainer && window.WebContainer.feixinGetToken){ //Android
 
-                         window.WebContainer.feixinGetToken(JSON.stringify(param))
 
-                     } else if ( window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.feixinGetToken) {
 
-                         window.webkit.messageHandlers.feixinGetToken.postMessage(param)
 
-                     } else if (navigator && navigator.WebContainer && navigator.WebContainer.feixinGetToken) {
 
-                         navigator.WebContainer.feixinGetToken(JSON.stringify(param))
 
-                     } else {
 
-                         $("ssoerror").set("html","单点失败,无token api!" + "<br/>地址:" + window.location).show();
 
-                     }
 
-                 }
 
-                 //if ( enterId ){
 
-                     if( enterId && token ){
 
-                         loginCallback( token, enterId )
 
-                     }else{
 
-                         //回调方法
 
-                         window.deliveryToken = function(info){
 
-                             if( info ){
 
-                                 loginCallback(info, enterId);
 
-                             }else{
 
-                                 $("ssoerror").set("html","单点失败,通过API未获取到token!" + "<br/>地址:" + window.location).show();
 
-                             }
 
-                         }
 
-                         feixinGetTokenFun();
 
-                     }
 
-                 // }else{
 
-                 //     $("ssoerror").set("html","单点失败,enterId为空!" + "<br/>地址:" + window.location).show();
 
-                 // }
 
-             };
 
-             function isMobile() {
 
-                 debugger;
 
-                 return o2.session.isMobile;
 
-                 // let userAgentInfo = navigator.userAgent;
 
-                 // let Agents = ['Android', 'iPhone', 'SymbianOS', 'Windows Phone', 'iPad', 'iPod'];
 
-                 // let getArr = Agents.filter(function(i){
 
-                 //     return userAgentInfo.indexOf(i) > -1;
 
-                 // });
 
-                 // return getArr.length ? true : false;
 
-             }
 
-             var gotoPage = function (uri) {
 
-                 history.replaceState(null, "gotoPage", uri);
 
-                 document.location.href = uri;
 
-             };
 
-             var redirectTo = function(){
 
-                 var uri = new URI(window.location.toString());
 
-                 var redirect = uri.getData("redirect");
 
-                 if (redirect){
 
-                     gotoPage( redirect );
 
-                 }else{
 
-                     if( isMobile() ){
 
-                         requestJson(
 
-                             "x_program_center",
 
-                             "/jaxrs/appstyle/index/portal",
 
-                             function(responseJSON, responseText){
 
-                                 var data = responseJSON.data;
 
-                                 if( data && data.value ){
 
-                                     // var url = "../x_desktop/portalmobile.html?id="+data.value;
 
-                                     // if( data.indexPage ){
 
-                                     //     url = url + "&page=" + loginPage.page;
 
-                                     // }
 
-                                     gotoPage( "../x_desktop/portalmobile.html?id="+data.value );
 
-                                 }else{
 
-                                     gotoPage( "../x_desktop/appMobile.html?app=process.TaskCenter" );
 
-                                 }
 
-                             }.bind(this),
 
-                             function(xhr){
 
-                                 gotoPage( "../x_desktop/appMobile.html?app=process.TaskCenter");
 
-                             }.bind(this),
 
-                             function(text, error){
 
-                                 gotoPage( "../x_desktop/appMobile.html?app=process.TaskCenter" );
 
-                             }.bind(this)
 
-                         );
 
-                     }else{
 
-                         gotoPage( "../x_desktop/index.html" );
 
-                     }
 
-                 }
 
-             };
 
-             o2.JSON.get("res/config/config.json", function(config){
 
-                 if (config.proxyCenterEnable){
 
-                     if (o2.typeOf(config.center)==="array"){
 
-                         config.center.forEach(function(c){
 
-                             c.port = window.location.port || 80;
 
-                         })
 
-                     }else{
 
-                         config.port = window.location.port || 80;
 
-                     }
 
-                 }
 
-                 layout.config = config;
 
-                 getServiceAddress(config, function(){
 
-                     //debugger;
 
-                     //console.log(window.location);
 
-                     who( login, redirectTo, login)
 
-                 });
 
-             });
 
-         });
 
-         function buttonLogin() {
 
-             who( login, redirectTo, login)
 
-         }
 
-     </script>
 
- </head>
 
- <body style="background: rgb(239, 239, 244);">
 
- <div id="ssoerror" style="text-align:center;line-height: 30px;word-break: break-all;display:none;">单点失败,请联系管理员!</div>
 
- <button onclick="buttonLogin()"></button>
 
- </body>
 
- </html>
 
 
  |