Skip to content

Единая регистрация для HTML5

1. Обзор

1.1 Описание проблемы

Когда пользователи просматривают проект FineBI в HTML5, им нужно ввести имя пользователя и пароль по умолчанию, как добиться единого входа?

1.2 Идеи для реализации

В этой статье описаны два способа вызова интерфейса входа в систему для достижения единого входа в HTML5:

1) Ajax кросс-доменная единая регистрация

2) iframe кросс-доменная единая регистрация

Примечание: Чтобы реализовать единый вход HTML5, необходимо установить плагин HTML5 mobile presentation, см. раздел: HTML5 Access Dashboard/Projects

2. AJAX кросс-доменная единая регистрация

2.1 Новый файл login.md

В каталоге проекта FineBI %BI_HOME%/webapps/webroot/ создайте новый файл login.md со следующим кодом:

Примечание 1: URL, имя пользователя и пароль в коде должны быть изменены в соответствии с реальным использованием. IP не должен быть написан как localhost.

Примечание 2: Версия плагина HTML5 для мобильных презентаций для V10.2.0 до, мобильный вход необходимо принести__device__=iPhone&terminal=H5параметры

URL-адрес записывается так: http://IP:端口号/webroot/decision/login/cross/domain?__device__=iPhone&terminal=H5

Если вы не зарегистрировали функциональную точку мобильной платформы принятия решений, единая авторизация сообщит об ошибке11100016, удалитьпараметры__device__=iPhone&terminal=H5можно

  
  
 <html> <head> <meta http-equiv="Content-Type" content="text/html;&  
 nbsp;" charset="utf-8"> <script type="text/javascript" src=&&   
 quot;https://cdn.bootcss.com/jquery/1.9.1/jquery.min.js"></script> <script type  
  
 ="text/javascript"> function doSubmit() { &  
 nbsp; /*-------------------AJAX способ -------------------*/ &nbsp  
;jQuery.ajax({ //h5 плагин версии для 10.2.0 перед мобильным входом нужно привести __device__ = iPhone&  
   
amp;terminal=H5 parameters //url: 'http://IP:端口号/webroot/decision/login/cross/domain?__device__=iPhone&terminal=H5', /.  
//После версии h5 плагина 10.2.0, мобильный вход без параметра __device__=iPhone&terminal=H5 //Если вы не зарегистрировали функциональную точку платформы мобильного решения, то ошибка времени единого входа 11100016, удалите параметр __device__=iPhone&terminal=H5.  
 может быть url: 'http://IP:端口号/webroot/decision/login/   
 cross/domain', data: {'fine_username&#39  
;: 'username', 'fine_password': 'password', 'validity': -1},  
 таймаут: 5000, &   
 nbsp; dataType: 'jsonp', jsonp:&   
 quot;callback", success: function (res   
 ) { // alert('   
 Login successful'); var token&.  
 nbsp;= res.accessToken; window   
.location.href = "http://IP:端口号/webroot/decision/url/mobile?fine_auth_token=" + token; &   
 nbsp; }, &   
 nbsp; error: function () {   
 alert('Login failed'); }&nbsp.   
  
   
  
; }); } &nbsp  
  
  
; doSubmit(); </script> </head> </html>

2.2 Предварительный просмотр конца HTML5

HTML5 end input: http: //IP:端口号/webroot/login.md

1) После успешной единой регистрации вы вернетесь в каталог проектов/на главную страницу, как показано ниже:

1.gif

(2) При неудачной однократной регистрации выдается сообщение "Login Failed", как показано ниже:

222

3. iframe кросс-доменная единая регистрация

3.1 Новый файл login.md

В каталоге проекта FineBI %BI_HOME%/webapps/webroot/ создайте новый файл login.md со следующим кодом:

Примечание 1: URL, имя пользователя и пароль в коде должны быть изменены в соответствии с реальным использованием. IP не должен быть написан как localhost.

Примечание 2: Версия плагина HTML5 для мобильных презентаций для V10.2.0 до, мобильный вход необходимо принести __device__=iPhone&terminal=H5 параметры

URL-адрес записывается так: http://IP:端口号/webroot/decision/login/cross/domain?__deviceType__=iPhone&terminal=H5&fine_ имя пользователя=admin&fine_password=123456&validity=-1&callback=callback

Если вы не зарегистрировали функциональную точку мобильной платформы принятия решений, единая авторизация сообщит об ошибке 11100016, удалить параметры __device__=iPhone&terminal=H5 можно

  
  
 <html> <head> <meta http-equiv="Content-Type" content="text/html;&  
 nbsp;" charset="utf-8"> <script type="text/javascript" src=&&quot;"></script> <script type=&quot;.  
 quot;https://cdn.bootcss.com/jquery/1.9.1/jquery.min.js"></script> <script type=&quot  
  
;text/javascript"> function doSubmit() {  
 var scr = document.createElement("iframe"); //Указываем адрес имени пользователя и пароля аутентификации BI-проекта на этот iframe   
  
адрес BI-проекта для указания на этот iframe //h5 плагин версии для 10.2.0 до, мобильный вход необходимо привести __device__=iPhone&terminal=H5 параметр //scr.src = "http://IP:端口号/webroot/ decision/login/cross/domain?__deviceType__=iPhone&terminal=H5&fine_username=username&fine_password=password&validity=-1& callback=callback"; //scr.src = "decision/login/cross/domain?  
  
callback=callback"; //after h5 plugin version 10.2.0, mobile login without __device__=iPhone&terminal=H5 parameter //if you have not registered the mobile decision platform function point, single sign-on error 11100016, delete __device__=iPhone&terminal=H5 parameter //if you have not registered the mobile decision platform function point, single sign-on error 11100016, remove __device__=iPhone&terminal=H5 parameter  
 Параметр iPhone&terminal=H5 может быть scr.src = "http://IP:端口号/webroot/decision   
 /login/cross/domain?fine_username=username&fine_password=password&validity=-1&callback=callback"; &  
 nbsp; scr.id = "login"; var token&  
   
 nbsp;= ""; &   
   
 nbsp; if (scr.attachEvent) &  
 nbsp; { // определяем, что это браузер ie &  
 nbsp;// alert("ie"); scr. attachEvent("onload", function(){ &  
 nbsp; //если это ie-браузер, то оно выполняется сразу после загрузки страницы &  
 nbsp; //в принципе, следующий токен передавать не нужно, сейчас временный доступ к токену возврата логина, вставленному в обратную сторону url перехода & nbsp; token = document.getElementById("login").contentWindow.document.body.  
 innerHTML; token = token.  
 substring(token.indexOf("accessToken")+14, token.indexOf("url")-3); & nbsp; window.location="http://IP:端口号/webroot/decision/url/mobile?fine_  
 auth_token=" + token; // Переходим непосредственно к системе принятия решений по данным &  
  
 nbsp; }); } else { &   
 nbsp; // alert("not ie"); & nbsp; scr.onload = function(){ & nbsp; // Другие браузеры перезагружают событие onload и выполняют onload, чтобы получить единственный проход на сервер &   
   
 nbsp; &nbsp ; //В принципе, следующий токен передавать не нужно, сейчас временный доступ к токену возврата логина вклинивается в скачку  
 url обратной стороны токена =&  
 nbsp;document.getElementById("login").contentWindow.document.body.innerHTML; & nbsp; token = token.substring(token.indexOf("accessToken  
 ")+14, token.indexOf("url")-3); & nbsp; window.location="http://IP:端口号/webroot/decision/url/mobile?fine_auth_token=" +  
   
 token; // Переход непосредственно к системе принятия решений о данных }; &   
   
 nbsp; } &  
 nbsp; document.getElementsByTagName("head")[0].appendChild(scr); //Вмещаем теги iframe в head &   
  
  
  
 nbsp; } doSubmit(); </script> </  
 head> </html

3.2 Предварительный просмотр конца HTML5

HTML5 end input: http: //IP:端口号/webroot/login.md, после успешного завершения единой регистрации происходит возврат к каталогу проектов/домашней странице, как показано на следующем рисунке:

Примечание: Если вы используете междоменный iframe для вставки отчета, отключите функцию "Защита от атак Clickjacking" в расширенных настройках заголовков безопасности, подробнее см. в разделе: Защита безопасности.

1.gif