Перейти к содержимому
Версия 1.0 ещё не выпущена; проект находится на стадии pre-MVP. См. возможности и ограничения версии 1.0.

Создание и замена первого администратора

В Dee Wan нет публичной регистрации. В новой установке нет учётной записи, пока кто-то не использует одноразовую ссылку активации. Установщик привязывает её к одному нормализованному адресу BOOTSTRAP_ADMIN_EMAIL. На странице активации нельзя ввести другой адрес.

Настройте способы входа до развёртывания

Заголовок раздела «Настройте способы входа до развёртывания»

BETTER_AUTH_SECRET обязателен и создаётся установщиком. Учётные данные провайдеров храните в Worker secrets, а не в vars. Несекретные настройки находятся в backend/wrangler.jsonc.

Способ Обязательная настройка
Пароль BETTER_AUTH_SECRET
Magic link BETTER_AUTH_SECRET, secret RESEND_API_KEY и var MAIL_FROM
Google BETTER_AUTH_SECRET, var GOOGLE_CLIENT_ID и secret GOOGLE_CLIENT_SECRET
GitHub BETTER_AUTH_SECRET, var GITHUB_CLIENT_ID и secret GITHUB_CLIENT_SECRET
Passkey BETTER_AUTH_SECRET и корректный BACKEND_URL (плюс FRONTEND_URL, если у админки отдельный origin). Не может активировать установку.

Для ещё не активированной установки AUTH_INITIAL_METHODS — список через запятую, например "password,magic_link,google,github". Если переменная отсутствует, сначала доступен только пароль. Способ входа недоступен, если для него не настроен хотя бы один обязательный параметр. passkey можно указать только вместе со способом, который может активировать установку: ключ доступа добавляется в разделе Безопасность аккаунта после первого входа.

После создания первого администратора суперадмин меняет список способов входа на странице Установка, в разделе Способы входа. Пункт Установка есть в боковом меню только у суперадминов. API не позволяет включить ненастроенный способ или оставить всех активных суперадминов без доступного способа входа.

Откройте ссылку активации и выберите доступный способ:

  • Пароль задаёт пароль длиной 12–128 символов для привязанного адреса.
  • Magic link отправляется только на привязанный адрес. Поля email на странице нет.
  • Google должен вернуть этот же подтверждённый email.
  • GitHub должен вернуть этот же основной и подтверждённый email.

Название провайдера не ограничивает домен адреса. Например, GitHub может подтвердить адрес с окончанием @google.com. Важно только точное совпадение нормализованных адресов.

Ссылка активации и проверочный запрос одноразовые и истекают не позднее чем через 15 минут после создания исходной ссылки. Вход по паролю, по magic link, через Google и GitHub никогда не создаёт учётную запись. Даже если провайдер подтвердил адрес, вход с неизвестным адресом отклоняется. Создать учётную запись при входе может только правило Cloudflare Access для сайта (см. Вход через Cloudflare Access).

Если ссылка для новой установки потеряна или истекла, создайте замену для настроенного адреса:

Окно терминала
npm run claim:link -- --remote --bootstrap --email owner@example.com

Без --bootstrap эта команда восстанавливает пароль единственного активного суперадмина. Первого пользователя она не создаёт. См. Пароли и восстановление.

Ответы провайдеров при входе не меняют канонический email учётной записи. Вошедший владелец меняет его в разделе Безопасность аккаунта после подтверждения нового почтового ящика. Подтверждённая учётная запись Google или GitHub с тем же нормализованным email привязывается к существующей учётной записи, а не создаёт новую. В GitHub совпадающий адрес должен быть основным и подтверждённым. Access token, refresh token и ID token провайдера не сохраняются.

Если вы впервые активировали установку с помощью пароля, последующий вход по magic link сохраняет этот исходный пароль. Можно продолжать пользоваться обоими способами без повторной установки пароля.

Не меняйте email старой учётной записи. Выполните следующие действия:

  1. В разделе Настройки → Люди, в блоке Добавить человека, введите email нового суперадмина, выберите роль и нажмите Добавить.
    • У адреса уже есть учётная запись: роль выдаётся сразу. Если строка показывает, что войти пока нельзя, нажмите Создать ссылку и передайте эту ссылку для пароля лично. Подтверждённая учётная запись Google или GitHub с тем же адресом тоже привяжется при входе.
    • Учётной записи ещё нет: учётная запись не создаётся. Вместо неё создаётся приглашение (см. Добавить человека). Приглашённый пользователь открывает ссылку приглашения, вводит адрес, на который оно отправлено, вводит код из письма, если почта настроена, и выбирает пароль. Только после этого учётная запись существует.
  2. Убедитесь, что новый пользователь есть в списке Люди и в его строке указано Может войти (или Cloudflare Access, если Access настроен). Ожидающее приглашение — не учётная запись, по нему нельзя назначить суперадмина.
  3. В строке раздела Люди нажмите кнопку со щитом (Сделать {email} суперадминистратором) и подтвердите Сделать суперадминистратором. Назначить суперадмином учётную запись без рабочего способа входа нельзя. Существующие сессии пользователя, получившего права суперадмина, будут отозваны.
  4. Войдите под новой учётной записью. Убедитесь, что в её боковом меню есть Установка.
  5. На странице Установка, в разделе Суперадминистраторы, деактивируйте старую учётную запись.

Деактивация завершает старые сессии и сохраняет контент и исторические ссылки. Для повторной активации нужен новый вход. API запрещает самодеактивацию и изменения, после которых не останется активного суперадмина с рабочим способом входа.

Каждый вошедший пользователь может открыть Безопасность аккаунта из меню учётной записи (/account/security), включая пользователей без доступа к сайтам. Экран относится только к вашей учётной записи: язык администратора, привязанные подключения Google и GitHub и ваши ключи доступа. Настройки пароля, конфигурации magic link и способов входа для всей установки на этом экране нет.

Прежде чем удалить свой последний способ входа, убедитесь, что у вас есть другой способ входа или в системе остаётся второй суперадмин, который может войти. О потерянных устройствах, забытых паролях и заблокированном суперадмине см. Пароли и восстановление.

В разделе Язык выберите English, ไทย, Русский, Español, Français или Deutsch. Как в браузере ({language}) использует язык браузера, а при неподдерживаемом языке показывает английский. Настройка сохраняется в вашей учётной записи и действует на всех сайтах и устройствах. Она меняет только интерфейс администратора, даты и числа и никогда не меняет языки контента сайта, которые настраиваются в разделе Настройки → Языки. Экраны, которые ещё не переведены, остаются на английском.

Безопасность аккаунта показывает ваши подключения Google и GitHub. Подключение может оставаться привязанным, даже если вход через этого провайдера недоступен.

Выберите Отключить, проверьте имя провайдера и предупреждение о сессиях, затем подтвердите. Сервер одной атомарной операцией удалит именно это подключение и отзовёт все сессии CMS вашей учётной записи, включая текущую. Вам потребуется войти снова. Этот экран и его API не возвращают токены или идентификаторы учётной записи у провайдера. Пароли и ожидающие проверочные ссылки не удаляются.

Обычный пользователь может удалить своего последнего провайдера. Суперадмин также может удалить последний личный способ, если другой активный суперадмин всё ещё может войти. Сервер откажет в любой отвязке, после которой в установке не останется активного суперадмина с включённым, настроенным и пригодным способом входа. Настроенный способ без пригодной привязки учётной записи не считается. Настроенный и включённый magic link использует email пользователя. При отказе подключение и все сессии сохраняются.

Отвязка разрывает связь провайдера с учётной записью CMS. Она не отзывает авторизацию OAuth-приложения в Google или GitHub. Позднее разрешённый вход с тем же подтверждённым email может снова привязать провайдера через существующий сценарий входа. На странице Безопасность аккаунта нет кнопки привязки провайдера.

Ключи доступа выключены, пока суперадмин их не включит (см. Ключи доступа). После этого каждый добавляет свои ключи в разделе Безопасность аккаунта, войдя другим способом за последние 24 часа. Войти с ключом доступа не спрашивает адрес. Вы можете переименовывать и удалять свои ключи. Последний способ входа удалить нельзя. Удаление ключа не завершает текущие сессии. Деактивированная учётная запись не может войти по ключу.

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

Доведите первый сайт до опубликованного контента.


Стабильная версия ещё не выпущена (pre-MVP)
Коммит исходного кода: fe23db481c422b40e317b92fc98116b4c0c26a87 (с локальными изменениями)
Дата сборки (UTC): 2026-10-18T09:22:34.630Z
Коммит для обновления: не определён: в рабочей копии есть изменения. Примечания к выпуску