Переход между провайдерами
Как игрок переносит аккаунт на другой провайдер и почему перенос никогда не ослабляет его защиту.
Игрок может перенести аккаунт с одного провайдера на другой, например с Credential на Premium после покупки игры. Аккаунт сохраняет свой UUID и свои данные; меняется только способ входа.
Как игрок переносит аккаунт
- Уже выполнив вход, игрок вводит команду нового провайдера, например
/premiumили/credential. - Он подтверждает перенос командой
/premium confirmили/credential confirmлибо отменяет его сcancel. - Identica отключает игрока и хранит перенос в течение
pipelineTtlсценария миграции вengine.yml— по умолчанию пять минут — для входов с тем же ником и с того же адреса. - Игрок заходит снова и настраивает новый провайдер, например входит со своим лицензионным аккаунтом или задаёт пароль.
Администраторы могут начинать, отменять и менять переносы командой /identica migration; см. Управление аккаунтами.
С этого момента аккаунт может брать ник у нового провайдера, и этот ник может совпасть с ником другого аккаунта; такой конфликт решают правила для ников.
Перенос никогда не ослабляет защиту
Ожидающий перенос продолжается только при входе, который подтвердил провайдер:
- как идентичность, с которой аккаунт уже связан, то есть провайдер, с которого аккаунт уходит. Тогда Identica выбирает новый провайдер, и игрок настраивает его в той же сессии;
- или как собственную идентичность нового провайдера, если новый провайдер сам проверяет входы, как это делает Premium.
Любой другой вход, дошедший до Identica при ожидающем переносе, отменяет его, и игрок получает сообщение scenarios.migration.cancelled. Вход, который отклоняет провайдер, с которого уходит аккаунт, — например, офлайн-клиент с ником аккаунта Premium, — ничего не меняет.
С Premium на Credential
Premium требует от каждого игрока, который заходит с ником аккаунта Premium, войти с этим лицензионным аккаунтом, поэтому офлайн-клиент не может занять такой ник, и ожидающий перенос этого не меняет. Владелец переносит аккаунт командами /credential и /credential confirm, уже выполнив вход. При следующем входе он ещё раз входит с лицензионным аккаунтом, и этот вход позволяет ему задать пароль, которым он будет пользоваться дальше.
Уход с провайдера, который проверяет пароль
Провайдер, который доказывает владение только через запрос, например пароль Credential, не может доказать его повторно при входе после подтверждения. Поэтому с такого провайдера аккаунт можно перенести только на провайдер, который сам проверяет входы, например Premium.
Как написать провайдер, который участвует в переносах, описано в разделе Написание провайдера.
