null

Шпаргалка по keycloakify

Сегодня хочу рассказать, как спокойно начать проект на Keycloakify для создания темы для Keycloak. Версия первого — 11.8.24, а второго — 26 соответственно.

Если останутся вопросы по каким-то моментам, идем в документацию. Там можно найти ответы на все оставшиеся вопросы, а также узнать, какие страницы поддерживаются Keycloakify по умолчанию.

Создание проекта

Итак, создаем новый репозиторий, клонируем в него шаблон Keycloakify и устанавливаем зависимости (чтобы избежать проблем, берем ссылку на clone из документации — не стоит искать шаблон Keycloakify в интернете и т.д)

git clone https://github.com/keycloakify/keycloakify-starter .

yarn

Далее есть два варианта разработки:

  1. Разрабатывать страницы через Storybook без локального Keycloak.

  2. Запускать Keycloakify с локальным поднятым Keycloak.

1. Разработка через Storybook

Выполняем команду и запускаем Storybook:

npx keycloakify add-story

yarn storybook

2. Разработка с локальным Keycloak

Добавляем в package.json команду с нужной версией Keycloak и запускаем:

"dev-in-docker": "NODE_ENV=development && keycloakify start-keycloak --keycloak-version 26.2.0"
yarn dev-in-docker

Логин-тема

Чтобы отредактировать логин-тему, нужно выполнить eject нужных страниц:

npx keycloakify eject-page

Далее остается:

  • Отредактировать компонент Template под свои нужды или написать свою личную обертку для страниц.

  • Изменить страницы логина, регистрации и т. д. в соответствии с дизайн-макетами.

Аккаунт-тема

Для редактирования аккаунт-темы запускаем команду и выбираем один из вариантов:

npx keycloakify initialize-account-theme
  • single-page (напоминает React-приложение, лучше поддерживает новые фичи Keycloak).

  • multi-page (работает аналогично логин-теме, с eject страниц и последующей их модификацией).

Разница между single-page и multi-page

  • Multi-page: работаем со страницами так же, как в логин-теме и сделан на основе первых версий Keycloak.

  • Single-page: придется повозиться побольше. Придется вручную запускать команду(можно увидеть нижу) для того, чтобы Keycloakify понял для себя, что данный файл стал модифицируемым и не изменял его при каждой установке зависимостей.

Чтобы защитить изменения, выполняем для каждого файла команду:

npx keycloakify own --path "path-to-file + file-name"

Если этого не делать, при переустановке зависимостей все вернется к настройкам по умолчанию.

Если не хочется следить за этим: можно убрать файлы из .gitignore в /src и удалить команду postinstall из package.json, чтобы избежать случайного сброса при установке зависимостей.

Переводы

Для логин-темы и multi-page аккаунт-темы

В i18n.ts добавляем вызов withCustomTranslations и передаем объект с переводами.

Для single-page аккаунт-темы

Нужно:

  1. Найти файл с нужной локалью и убрать его из .gitignore при помощи волшебной команды npx keycloakify own --path.

  2. Создать файл с суффиксом overrides и добавлять туда кастомные переводы под требуемую для нас локаль.

Сборка под разные версии

Чтобы создать .jar с определенным названием и версией, в vite.config передаем нужные параметры в функцию keycloakify:

Заключение

Когда я впервые начал работать с Keycloak и Keycloakify, это показалось неудобным. Но на самом деле дело там обстоит не так уж и плохо и лично для себя хочу оставить напоминание: внимательно читай документацию перед началом работы!

Вот ссылка на нее: https://docs.keycloakify.dev/

Previous Next

Коротко о себе:

Работаю кем-то в компании Tune-it. Занимаюсь какими-то проектами, связанными с чем-то.

Nothing has been found. n is 0