@itcor-kz/im-auth
| Install | |
|---|---|
npm install @itcor-kz/im-auth |
|
| Latest Version: | 0.2.53 |
| Vue: | 3 |
| License: | MIT |
| Last Updated: | Sep 15, 2026 |
| Links: | npm |
Модуль авторизации @itcor-kz/im-auth
Модуль авторизации и регистрации пользователей для приложений на Vue 3 + Vuetify 3.
Поставляется как набор готовых страниц и стора, которые можно встроить в хост‑приложение.
Экспортируемые сущности
Из сборочного файла модуля экспортируются:
- страницы
AuthPage– авторизацияRegisterPage– регистрацияRecoverPasswordPage– восстановление пароляEndSessionMessage– диалог об окончании сессии
- store
useAuthStore– работа с API авторизации, регистрацией, восстановлением пароля, TOTP и т.п.useLocalAuthStore– локальные настройки модуля (маршруты, фон/логотип, вариант лейаута, языки, цвета)useUserStore– информация о пользователе и рабочих местах
- функции инициализации
initAuthModule– инициализация модуля с конфигурациейinitAuthModuleRuntime– инициализация runtime-настроек (router)
Инициализация модуля
При использовании пакета желательно настроить модуль через функции инициализации initAuthModule() и initAuthModuleRuntime(). Это влияет только на локальные настройки авторизации (маршруты, фон/логотип, вариант лейаута, языки, цвета и т.п.).
Модуль будет работать и без вызова этих функций — store создастся с дефолтными значениями, и компоненты отрендерятся. Однако для предотвращения мелькания дефолтных значений (логотип, вариант лейаута) при первом рендере рекомендуется задавать конфигурацию до первого использования store.
Рекомендуемый способ: initAuthModule + initAuthModuleRuntime
initAuthModule применяет конфигурацию модуля и должна быть вызвана до первого использования store.
initAuthModuleRuntime настраивает runtime-параметры (router) и должна быть вызвана после app.use(router):
// App.vue или main.ts
import { initAuthModule, initAuthModuleRuntime } from "@itcor-kz/im-auth";
import { useRouter } from "vue-router";
// 1) Инициализация модуля с конфигурацией (до первого использования store)
initAuthModule({
layoutVariant: "center",
backgroundImg: "/animals-bg-yellow.jpg",
authUrl: "/auth",
regUrl: "/registration",
restorePasswordUrl: "/restore/password/",
// ... остальные настройки, в самом низу есть полный пример
});
// 2) Инициализация runtime-настроек (после создания router)
const router = useRouter();
initAuthModuleRuntime(router);
Изменение конфигов после инициализации
Для изменения конфигурации после инициализации используйте метод applyConfig() на store:
import { useLocalAuthStore } from "@itcor-kz/im-auth";
const l_auth = useLocalAuthStore();
// Изменение настроек после инициализации
l_auth.applyConfig({
layoutVariant: "split", // изменить вариант лейаута
backgroundImg: "/new-background.jpg", // изменить фон
ui: {
enableLanguageSwitcher: false, // отключить переключатель языка
},
// ... любые другие настройки из конфига
});
Примечание: Использование applyConfig() после первого рендера может привести к кратковременному отображению старых значений. Для начальной настройки рекомендуется использовать initAuthModule().
Варианты лейаута
Для страниц:
AuthPageRegisterPageRecoverPasswordPage
используется настройка:
l_auth.layoutVariant('split' | 'center')'split'– классический вариант: форма и фоновый блок в двух колонках.'center'– форма по центру, фон на всю страницу.
Установка:
// Рекомендуемый способ (через initAuthModule при инициализации)
initAuthModule({
layoutVariant: "center",
});
// Изменение после инициализации (через applyConfig)
const l_auth = useLocalAuthStore();
l_auth.applyConfig({
layoutVariant: "center",
});
// Альтернативный способ (через метод store)
l_auth.setLayoutVariant("center"); // или "split"
Настройки фона и логотипа
- Фон страниц авторизации
// Рекомендуемый способ (через initAuthModule при инициализации)
initAuthModule({
backgroundImg: "/animals-bg-yellow.jpg",
});
// Изменение после инициализации (через applyConfig)
const l_auth = useLocalAuthStore();
l_auth.applyConfig({
backgroundImg: "/animals-bg-yellow.jpg",
});
// Альтернативный способ (через метод store)
l_auth.setAuthBackgroundImg("/animals-bg-yellow.jpg"); // принимает только путь, без url()
Значение попадает в background-image для всех auth‑страниц (в обоих режимах лейаута). Метод setAuthBackgroundImg принимает только путь к изображению (без url()), обёртка добавляется автоматически.
- Логотип
// Рекомендуемый способ (через initAuthModule при инициализации)
initAuthModule(
{
logo: {
default: "/images/custom-logo.svg", // базовый логотип (приоритет)
light: "/images/logo-light.svg", // для светлой темы
dark: "/images/logo-dark.svg", // для тёмной темы
},
},
router
);
// Изменение после инициализации (через applyConfig)
const l_auth = useLocalAuthStore();
l_auth.applyConfig({
logo: {
default: "/images/custom-logo.svg",
light: "/images/logo-light.svg",
dark: "/images/logo-dark.svg",
},
});
// Альтернативный способ (через метод store)
l_auth.setAuthLogo("/images/custom-logo.svg"); // базовый логотип
Приоритет логотипов:
logo.default(илиauthLogoчерезsetAuthLogo) — используется всегда, если заданlogo.light/logo.dark— используются в зависимости от темы, еслиdefaultне задан
Логотип показывается:
- в
IAuthHeader(верхнее меню) — светлый/тёмный вариант в зависимости от темы; - в мобильных версиях шагов регистрации (
IRegisterSteps) и восстановления пароля (IPassRecovery) над формой.
Шапка IAuthHeader
Компонент IAuthHeader:
- верхнее меню
- по умолчанию ссылки «Главная» и «Контакты» (через
propshomeRoute/contactsRoute); - можно полностью переопределить список пунктов через конфиг:
- по умолчанию ссылки «Главная» и «Контакты» (через
// Рекомендуемый способ (через initAuthModule при инициализации)
initAuthModule(
{
ui: {
topMenu: [
{ label: "Главная", route: "/" },
{ label: "Поддержка", route: "/support" },
],
},
},
router
);
// Изменение после инициализации (через applyConfig)
const l_auth = useLocalAuthStore();
l_auth.applyConfig({
ui: {
topMenu: [
{ label: "Главная", route: "/" },
{ label: "Поддержка", route: "/support" },
],
},
});
- логотип
- берётся из
l_auth.logoLight/l_auth.logoDark(если заданы) или изl_auth.authLogo.
- берётся из
- переключение языка
- список языков берётся из
l_auth.languages; - текущий язык хранится в
l_auth.currentLocaleи кэшируется вlocalStorage.Locale; - для изменения языка можно использовать
l_auth.setLocale('ru')илиl_auth.setLocale('kz'); - желательно синхронизировать
l_auth.currentLocaleс локалью в основном проекте - можно полностью выключить язык‑переключатель (и в шапке, и в мобильном меню):
- список языков берётся из
// При инициализации
initAuthModule(
{
ui: {
enableLanguageSwitcher: false,
},
},
router
);
// Или после инициализации
const l_auth = useLocalAuthStore();
l_auth.applyConfig({
ui: {
enableLanguageSwitcher: false,
},
});
- цвета и тема
- палитра берётся из
l_auth.themeColors(локализованные названия цветов на русском и казахском); - выбранный цвет и тема сохраняются в
localStorage.ColorиlocalStorage.Theme; - можно отдельно отключать:
- палитра берётся из
// При инициализации
initAuthModule(
{
ui: {
enableColorSchemeSettings: false, // скрыть выбор цвета
enableThemeSwitcher: false, // скрыть переключатель светлая/тёмная тема
},
},
router
);
// Или после инициализации
const l_auth = useLocalAuthStore();
l_auth.applyConfig({
ui: {
enableColorSchemeSettings: false,
enableThemeSwitcher: false,
},
});
Настройки авторизации и регистрации
- Включение/выключение способов авторизации (номер / ЭЦП):
// При инициализации
initAuthModule(
{
auth: {
enableNumber: true,
enableEcp: false, // например, оставить только вход по номеру
},
},
router
);
// Или после инициализации
const l_auth = useLocalAuthStore();
l_auth.applyConfig({
auth: {
enableNumber: true,
enableEcp: false,
},
});
Внутри модуля гарантируется, что хотя бы один способ авторизации включён.
- Упрощённая регистрация без ЭЦП:
// При инициализации
initAuthModule(
{
auth: {
registrationSimpleWithoutEcp: true,
},
},
router
);
// Или после инициализации
const l_auth = useLocalAuthStore();
l_auth.applyConfig({
auth: {
registrationSimpleWithoutEcp: true,
},
});
В этом режиме страница регистрации (RegisterPage) сразу отправляет данные на бэкенд без шага выбора и подписи через ЭЦП.
Настройки восстановления пароля
Поле ИИН и передача ИИН на сервер зависят от включения авторизации по ЭЦП:
- если
auth.enableEcp: true— при восстановлении пароля в форме требуются номер и ИИН, и ИИН передаётся в методы восстановления; - если
auth.enableEcp: false— при восстановлении запрашивается только номер, ИИН не показывается и на сервер уходит пустым.
Чекбокс политики конфиденциальности
При входе можно включить отображение чекбокса с политикой конфиденциальности:
// При инициализации
initAuthModule({
pollConfAuth: true,
});
// Или после инициализации
const l_auth = useLocalAuthStore();
l_auth.applyConfig({
pollConfAuth: true,
});
Полный пример конфигурации
Рекомендуемый способ (через initAuthModule и initAuthModuleRuntime):
import { initAuthModule, initAuthModuleRuntime } from "@itcor-kz/im-auth";
import { useRouter } from "vue-router";
// 1) Инициализация модуля с конфигурацией (до первого использования store)
initAuthModule({
{
// Вариант лейаута
layoutVariant: "center", // или "split"
// Фоновое изображение (только путь, без url())
backgroundImg: "/animals-bg-yellow.jpg",
// Чекбокс политики конфиденциальности
pollConfAuth: true,
// URL для страниц авторизации
regUrl: "/registration",
authUrl: "/auth",
restorePasswordUrl: "/restore/password/",
// UI-настройки
ui: {
enableLanguageSwitcher: true,
enableColorSchemeSettings: true,
enableThemeSwitcher: true,
topMenu: [
{ label: "Главная", route: "/" },
{ label: "Поддержка", route: "/support" },
],
},
// Логотипы
logo: {
default: "/images/custom-logo.svg", // базовый (приоритет)
light: "/images/logo-light.svg", // для светлой темы
dark: "/images/logo-dark.svg", // для тёмной темы
},
// Настройки авторизации
auth: {
enableNumber: true,
enableEcp: true,
registrationSimpleWithoutEcp: false,
},
// Языки (опционально)
languages: [
{ value: "ru", label: "Русский" },
{ value: "kz", label: "Казахский" },
],
// Цвета темы (опционально)
themeColors: [
{
value: "#FF0000",
title: { ru: "Красный", kz: "Қызыл" },
},
// ... другие цвета
],
});
// 2) Инициализация runtime-настроек (после создания router)
const router = useRouter();
initAuthModuleRuntime(router);
// Теперь можно использовать store
const l_auth = useLocalAuthStore();
Изменение конфигурации после инициализации (через applyConfig):
import { useLocalAuthStore } from "@itcor-kz/im-auth";
const l_auth = useLocalAuthStore();
// Изменение любых настроек после инициализации
l_auth.applyConfig({
layoutVariant: "split", // изменить вариант лейаута
backgroundImg: "/new-background.jpg", // изменить фон
pollConfAuth: false, // изменить настройку
ui: {
enableLanguageSwitcher: false, // отключить переключатель языка
topMenu: [
{ label: "О нас", route: "/about" },
{ label: "Контакты", route: "/contacts" },
],
},
auth: {
enableEcp: false, // изменить способ авторизации
},
// ... любые другие настройки из конфига
});
Version History
| Version | Released | Vue | License |
|---|---|---|---|
| 0.2.53 | ^3.4.37 | MIT | |
| 0.2.52 | ^3.4.37 | MIT | |
| 0.2.51 | ^3.4.37 | MIT | |
| 0.2.50 | ^3.4.37 | MIT | |
| 0.2.49 | ^3.4.37 | MIT | |
| 0.2.48 | ^3.4.37 | MIT | |
| 0.2.47 | ^3.4.37 | MIT | |
| 0.2.46 | ^3.4.37 | MIT | |
| 0.2.44 | ^3.4.37 | MIT | |
| 0.2.43 | ^3.4.37 | MIT | |
| 0.2.42 | ^3.4.37 | MIT | |
| 0.2.40 | ^3.4.37 | MIT | |
| 0.2.39 | ^3.4.37 | MIT | |
| 0.2.38 | ^3.4.37 | MIT | |
| 0.2.37 | ^3.4.37 | MIT | |
| 0.2.35 | ^3.4.37 | MIT | |
| 0.2.34 | ^3.4.37 | MIT | |
| 0.2.33 | ^3.4.37 | MIT | |
| 0.2.32 | ^3.4.37 | MIT | |
| 0.2.31 | ^3.4.37 | MIT | |
| 0.2.30 | ^3.4.37 | MIT | |
| 0.2.29 | ^3.4.37 | MIT | |
| 0.2.28 | ^3.4.37 | MIT | |
| 0.2.27 | ^3.4.37 | MIT | |
| 0.2.26 | ^3.4.37 | MIT | |
| 0.2.25 | ^3.4.37 | MIT | |
| 0.2.24 | ^3.4.37 | MIT | |
| 0.2.23 | ^3.4.37 | MIT | |
| 0.2.22 | ^3.4.37 | MIT | |
| 0.2.21 | ^3.4.37 | MIT |
Showing the latest 30 of 54. See every release on npm