Оформление
Единая регистрация для 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 способ -------------------*/  
;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'
;: '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'); } .
; }); }  
; doSubmit(); </script> </head> </html>2.2 Предварительный просмотр конца HTML5
HTML5 end input: http: //IP:端口号/webroot/login.md
1) После успешной единой регистрации вы вернетесь в каталог проектов/на главную страницу, как показано ниже:

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

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=&""></script> <script type=".
quot;https://cdn.bootcss.com/jquery/1.9.1/jquery.min.js"></script> <script type="
;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;   ; //В принципе, следующий токен передавать не нужно, сейчас временный доступ к токену возврата логина вклинивается в скачку
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> </html3.2 Предварительный просмотр конца HTML5
HTML5 end input: http: //IP:端口号/webroot/login.md, после успешного завершения единой регистрации происходит возврат к каталогу проектов/домашней странице, как показано на следующем рисунке:
Примечание: Если вы используете междоменный iframe для вставки отчета, отключите функцию "Защита от атак Clickjacking" в расширенных настройках заголовков безопасности, подробнее см. в разделе: Защита безопасности.
