Стилизация и работа со страницей входа на сайт login

 

Управление старницей входа

Стандартная страница входа (/account/login) сделана вне рамок движка рендеринга страниц (т.е. не через стандартную форму системы). 
Вы можете добавить ссылки на Регистрацию и Восстановление пароля на странице.
Для этого используйте в глобальном CSS:
.regBtn, .forgotpasswordBtn{ display: inline-block !important;}

Кнопки будут ссылаться на страницу /reg и /forgot-password соответственно. Вам необходимо создать страницы под них и использовать компонент Форма.
Также вы можете добавить свою кастомную разметку через настройку с кодом LoginCustomMakeup (она будет добавлена перед кнопкой Войти).

Вы можете назначить класс для поля логина через настройку с кодом LoginInputCssClass.

Для вставки CSS и JS есть 2 специальные настройки с кодами LoginHeadSection, LoginBodyBottomSection (вставка идет в раздел head и перед закрывающим body страницы). Обновление Окт 2025.

Если передан URL параметр returnurl на страницу, то при успешном входе будет перенаправление на эту страницу (изначально работа страниц noaccess и
главной при отсутствии доступа перенаправляют на эту страницу с данным параметром).

Вы можете сделать кастомную разметку тела страницы /accountLogin через Lang метку в /langs / langValues с кодом LoginMakeup, partCode=login, в которой есть параметр {loginForm}.  После изменения метки, не забудьте сбрасывать общий кеш.

Установка SEO метатегов по странице /account/login делается через языковые метки (на /langs с part=login): LoginTitle, LoginDescription, LoginKeywords, LoginRobots.

Пример: 

<div style="width: 500px; margin: 0 auto;">
  <h1><i class="fas fa-sign-in-alt mr-1"></i> Sign in</h1>
  <hr>
  {loginForm}
</div>

Также вы можете установить SQL коллбек falcon_afterLogin для выполнения некоторых действий после успешного входа пользователя в систему: 

CREATE OR ALTER PROCEDURE [dbo].falcon_afterLogin
	@parameters ExtendedDictionaryParameter READONLY,  -- userGuid, langID
	@username nvarchar(32)
AS
BEGIN
  exec as_print @str='falcon_afterLogin'

  -- SELECT 1 Msg, Result, RediectUrl
 select 1 Result, '' Msg, '' RedirectUrl

  -- SELECT 2 Outer commands
  select '' type
END

Коллбек на неверный вход - процедура falcon_afterFailLogin

На входе:

На выходе

Пример процедуры: 

CREATE OR ALTER  PROCEDURE [dbo].falcon_afterFailLogin
	@parameters ExtendedDictionaryParameter READONLY,  -- userGuid, langID
	@username nvarchar(32)
AS
BEGIN
	declare @msg  nvarchar(max) = (select value2 from @parameters where [key]='msg')
  	declare @pass  nvarchar(max) = (select value2 from @parameters where [key]='password')
  exec as_print @str='falcon_afterFAILLogin'
 	exec as_print @str=@msg
    exec as_print @str=@pass
    

  -- SELECT 1 Msg, Result, RediectUrl
 select 1 Result, '' Msg, '' RedirectUrl

  -- SELECT 2 Outer commands
  select '' type
END

Дополнительные проверки пользователя при входе

Данную процедуру можно использовать для дополнительных проверок входа пользователя. Если в SELECT 1 вернуть Result=0, то пользователь не войдет под своим аккаунтом, при этом будет выведено сообщение Msg. Если задан RedirectUrl, то после успешного входа пользователь будет перенаправлен на данный URL. 

 

Есть возможность полностью заблокировать страницу /account/login (например, используя другие формы кастом формы входа). Для этого создайте в /settings  настройку DisableAccountLoginPage = 1 

Куда перенаправляется пользователь после входа?

При успешном входе применяются следующие правила (в порядке приоритета): 

1. Если есть процедура falcon_afterLogin с непустым RedirectUrl в SELECT 1, то пользователь переходит по указанному адресу после успешного входа 

2. Если есть у ролей пользователя страницы с галочкой Панель управления и В меню, то выбирается первая из них (минимальное значение Порядок в меню) для перехода после входа.

3. Переход на главную страницу. 

Нормализация логина пользователя при входе в систему

В некоторых случаях необходима нормализация логина, приведение к единому виду.

Для этого используется процедура falcon_normalizeLogin. Она выполняется ДО проверки доступа по логину и паролю. На входе username, введенный пользователь. На выходе будет username, который будет проверяться системой для входа.

Вы можете ее использовать при регистрации в форме. Если подобная процедура существует, то она будет вызываться и при входе в систему для обработки входящего логина.

CREATE PROCEDURE [dbo].falcon_normalizeLogin @login nvarchar(128)
AS BEGIN
    select lower(@login)
END
 Процедура на вход получает @login и возвращает 1 строковое значение в SELECT.
 
К примеру это можно использовать так: пользователь вводит email или телефон. Вы по нему находите в процедуре реальный username и его выдаете на проверку.
Страница-источник на сайте falconspace.ru