Skip to content

Пользовательская страница входа - FineReport Справка | Разработка отчетов | Использование отчетов | Учебные пособия

Настройте страницу входа в систему

1. Обзор

1.1 Версия

Версия сервера FineBIФункциональные изменения
6.0-

1.2 Ожидаемые результаты

Когда пользователь входит в систему Data Decision System и не хочет использовать экран входа по умолчанию, он может изменить экран входа по умолчанию, настроив его, как показано на следующем рисунке:

1.3 Идеи решений

Экран входа в систему, на котором указаны имя пользователя и пароль, отправляется в BI-систему, а BI-служба обращается к адресу аутентификации с этими двумя параметрами для проверки подлинности.

2. Настройка пользовательского экрана входа в систему

2.1 Новый HTML-файл

Создайте новый HTML-файл для настройки страницы входа в BI-проект и сохраните его в каталоге %BI_HOME%\webapps\webroot. Содержимое файла должно быть следующим:

Примечание: Измените IP и номер порта URL в html-файле (т.е. в приведенном ниже коде) в соответствии с реальной ситуацией.

Нажмите, чтобы загрузить и распаковать в HTML-файл: login.zip

  
   
  
  
 <html> <head> <meta charset="utf-8"> <meta&  
 nbsp;http-equiv="X-UA-Compatible" content="IE=edge"> <meta name=""  
 viewport" content="width=device-width, initial-scale=1"> <title>ДЕМО пользовательского логина  
   
 </title> <!  
 -- Пользовательский стиль, используйте по мере необходимости --> <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/  
 bootstrap.min.css" rel="stylesheet"> <script src="https://cdn.bootcss.  
 com/html5shiv/3.7.3/html5shiv.min.js"></script> <script src="https://cdn.bootcss.  
   
  
.com/respond.js/1.4.2/respond.min.js"></script> <style> &  
 nbsp; .container { display: flex  
  
; justify-content: center; &  
   
  
 nbsp; } .login-box { &nbsp  
; ширина: 300px;  
  
   
 margin-top: 100px; } .  
  
 login-box h2 { font-size: 26px; &  
 nbsp; text-align: center; &nbsp  
  
   
; margin-bottom: 25px; } &nbsp; .  
 nbsp; .login-item { margin-bottom:&  
  
  
  
   
  
 nbsp;20px; } </style> </head> <body> &  
 lt;div class="container"> <form class="login-box" action="&&&  
 quot; method="post" onsubmit="return false;"> &nbsp   
  
; <h2>FineBI Business Intelligence</h2> <div class="login-item"> &nbsp ; <label for="inputUsername" class=""  
 sr-only">Имя пользователя</label> <input type=&& quot;text" id="inputUsername" class="form-control" placeholder="Username"  
  
 required="" autofocus=""> </div> &nbsp  
; <div class="login-item">  
 <label for="inputPassword" class="sr-only">Пароль</label> &nbsp ; <input type="password" id="inputPassword"&  
 nbsp; class="form-control" placeholder="password" required=""> &  
 nbsp; </div> <button class="btn btn-lg btn-  
 primary btn-block" type="submit" id="submitBtn">Войти в систему</button> &  
  
 nbsp;</form> </div> <!  
-- Поскольку он встроен в проект, вы можете использовать fineui напрямую --> <script src="http://localhost:37799/webroot/decision/file?path=/com/fr/web/  
  
  
 ui/fineui.min.js&type=plain&parser=plain"> </script> <script> document.  
 getElementById("submitBtn").addEventListener("click", function () { &  
  
   
  
 nbsp; doSubmit(); }); function doSubmit() { & nbsp; var username = document.getElementById("inputUsername").value.  
 trim(); var password = document.getElementById("inputPassword&  
  
 quot;).value.trim(); if (username === "") { &  
 nbsp; window.alert("Пожалуйста, введите имя пользователя"); &  
  
 nbsp; return false; } &  
 nbsp; if (password === "") { &  
 nbsp; window.alert("Пожалуйста, введите пароль");  
  
  
 return false; } /**  
 * Отправляет пост-запрос через интерфейс авторизации, содержащий такую информацию, как имя пользователя и пароль */  
  
 $.ajax({   
 url: "http://localhost:37799/webroot/decision/login", &  
 nbsp; contentType: "application/json",  
 type: "POST", dataType: "json&quot  
  
;, data: JSON.stringify({ &nbsp  
; имя пользователя: имя пользователя, &nbsp  
 nbsp; пароль: пароль, &nbsp  
; validity: -1, &  
 nbsp; origin: getUrlQuery("origin") &  
 nbsp; }), success: function (res  
 ) { // Сохраняется ли возможность остаться на сайте после успешного входа и  
  
 токен if (res.data) { & nbsp; var  
 data = res.data; & nbsp; var day = data.data nbsp; var day = data.validity === -2 ?  
 (14 * 24) : -1; &nbsp ; BI.Cache.addCookie("fine_remember_login", data.validity, "/",  
 день); BI.  
   
 Cache.addCookie("fine_auth_token", data.accessToken, "/", day); &nbsp; BI.  
 nbsp; // затем переходим на соответствующую страницу &nbsp ; var response =&  
 nbsp;data.originUrlResponse;  
 if (BI.toUpperCase(response.method) === "GET") { & nbsp; window.location.  
 href = response.originUrl; &  
 nbsp; } else { &nbsp ; doActionByForm(response.originUrl, response.parameters, {  
 method: response.method}); &  
 nbsp; } }  
 else { &nbsp  
;// Выдаем сообщение об ошибке &nbsp;alert(res.originUrl)  
  
 nbsp;alert(res.errorMsg); } &nbsp; }  
 nbsp; }, &  
 nbsp; error: function () {   
  
 alert("Таймаут или другая ошибка сервера"); } &  
  
   
  
 nbsp; }); } // Запрашиваем параметры url &  
 nbsp;function getUrlQuery (name) { var reg = new&nbsp  
;RegExp("(^|&)" + name + "=([^&]*)(&|$)");  
 var r = window.location.search.substr(1).match(reg); if& nbsp;(r !  
  
 == null) return r[2]; return """; &  
   
  
 nbsp;} // Переход через форму function doActionByForm (url, data,&  
 nbsp;options) { options = options ||&  
  
 nbsp;{}; var config = { &  
 nbsp; method: options.method, &  
 nbsp; url: url, &  
 nbsp; data: data, &  
 nbsp; target: options.target &  
 nbsp;}; var $form = $("<form  
 method=\"" + config.method + "\" />"); &  
 nbsp; $form.attr("action", config.url); &nbsp  
; $form.attr("method", config.method || "post"); $form.attr("target", config.target || "_self"); ; $form.attr("target", config.target || "_self")  
  
 for (var key in config.data) { & nbsp; $form.append("<input type=\"hidden\" name=\" + key + "\" value=\" +  
 config.data[key] + "\" />"); &  
  
 nbsp;} $(document.body).append($form); &  
 nbsp; $form[0].submit(); &nbsp  
  
  
  
   
; $form.destroy(); } </script> </body> </html>

Примечание: Пользователи также могут настроить свой логин, используя пост-переход, нажмите, чтобы загрузить и распаковать HTML-файл:register.zip.

2.2 Настройка страницы входа в систему

Администратор входит в систему Data Decision System, нажимает "Management System > Appearance Configuration > Login Page", выбирает метод входа "Set Login Web Page" и вводит путь к настроенной странице входа: "login.md", как показано на следующем рисунке:

Примечание: Если файл страницы входа находится в одном проекте, вы можете использовать относительный путь для URL веб-страницы, а если вы используете его на разных доменах в разных проектах, пожалуйста, используйтеhttp://ip:port/工程名/形式.

2.3 Предварительный просмотр

Пожалуйста, "Предварительный просмотр" перед "Сохранением", чтобы страница входа не была настроена неправильно, что не позволит вам войти в систему. Как показано на рисунке ниже:

Примечание: Если при входе на страницу предварительного просмотра вы получаете сообщение об ошибке 404, это означает, что в приведенном выше HTML-файле есть ошибка, поэтому внимательно проверьте его и измените до тех пор, пока он не станет правильным.

2.4 Сохранение конфигурации

После того как эффект предварительного просмотра будет корректным, пользователь может нажать кнопку "Сохранить" в правом верхнем углу, выйти из текущей учетной записи и снова войти в Data Decision System, эффект пользовательской страницы будет таким, как показано в ожидаемом эффекте в разделе 1.2 данной статьи.

3. Доступ к приборной панели с включенной аутентификацией по шаблону

Используйте пользовательский экран входа, включите шаблонную аутентификацию, получите доступ к единой приборной панели, перейдите на пользовательский экран входа в систему, успешно выполнив вход, вы сможете просматривать приборную панель.

Пример:

Установите настраиваемый экран входа в систему с включенной аутентификацией по имени пользователя и паролю, ссылка для предварительного просмотра приборной панели выглядит так: http: //localhost:37799/webroot/decision/v5/design/report/6c92aa9694204baa838cadf0e0a9d551/view, другой пользователь получает доступ к URL панели, эффект показан на рисунке ниже:

6.gif

4. условия

Когда система устанавливает пользовательскую страницу входа, она несовместима с элементами конфигурации, связанными с "Администрирование системы > Вход".

Например, после включения функции "Обязательное изменение начального пароля" пользовательская страница входа не может перейти на экран изменения пароля, что приводит к невозможности входа.