# Как изменить стартовую страницу после входа, до загрузки первой страницы

**URL:** https://meta.discourse.org/t/how-to-change-homepage-after-login-before-first-page-loads/369042
**Category:** Development
**Created:** [05.Июнь.2025 17:44:47 UTC](https://meta.discourse.org/t/how-to-change-homepage-after-login-before-first-page-loads/369042 "2025-06-05T17:44:47Z")
**Posts on this page:** 1
**Showing post:** 1

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [05.Июнь.2025 17:44:47 UTC](https://meta.discourse.org/t/how-to-change-homepage-after-login-before-first-page-loads/369042/1 "2025-06-05T17:44:47Z")

</div>

У меня есть компонент темы для посадочной страницы по адресу [https://ejopa.discourse.group/](https://ejopa.discourse.group/)

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

```plaintext
export default apiInitializer((api) => {
  const siteSettings = api.container.lookup("service:site-settings");
  const topMenu = siteSettings.top_menu || ""; // защита от undefined
  const globalDefaultHomepage = topMenu.split("|")[0].trim();
  const currentUser = api.getCurrentUser();

  if (currentUser && defaultHomepage() === "custom") {
    setDefaultHomepage(globalDefaultHomepage);
  }
  api.renderInOutlet("custom-homepage", LandingPage);

});

```

Он работает просто отлично, ЗА ИСКЛЮЧЕНИЕМ первого входа в систему. Пользователя перенаправляет на /custom — если они нажмут на иконку, они попадут в нужное место, но не при первой загрузке.

Мне нужно сделать что-то вроде перенаправления их на правильную домашнюю страницу при входе в систему.

ИИ предложил что-то вроде этого, но это, похоже, не работает:

```plaintext
      api.onAppEvent('application:after-login', afterLoginHandler);

```

### РЕДАКТИРОВАНИЕ! Почти готово, но после входа в систему отображается посадочная страница

```plaintext
import { apiInitializer } from "discourse/lib/api";
import { defaultHomepage, setDefaultHomepage } from "discourse/lib/utilities";
import LandingPage from "../components/landing-page";

export default apiInitializer((api) => {
  const siteSettings = api.container.lookup("service:site-settings");
  const topMenu = siteSettings.top_menu || ""; // защита от undefined
  const globalDefaultHomepage = topMenu.split("|")[0].trim();
  const currentUser = api.getCurrentUser();

  api.onPageChange((url) => {
    const isCustom = url === "/custom";
    const router = api.container.lookup("service:router");
    const currentUser = api.container.lookup("service:current-user");
    if (currentUser && isCustom) {
      router.transitionTo("discovery." + defaultHomepage());
    }
  });

  if (currentUser && defaultHomepage() === "custom") {
    setDefaultHomepage(globalDefaultHomepage);
  }
  api.renderInOutlet("custom-homepage", LandingPage);
});

```

Боюсь, это всё, на что я способен. Я ошибаюсь?

---

_[View the full topic](https://meta.discourse.org/t/how-to-change-homepage-after-login-before-first-page-loads/369042)._
