Перейти к основному содержимому

Авторизация по секретному коду

Способ сохранить прогресс даже на площадках без авторизации.

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

Преимущества:

  • Анонимная авторизация
    • Не требуется вводить имя / почту / телефон и другие персональные данные
    • Не используются Cookies
    • Работает в режиме инкогнито
  • Быстрый способ входа, не нужно заполнять ничего кроме короткого кода
  • Способ продолжить игру на любом устройстве
  • Разработчику
    • Не нужно реализовывать логику авторизации, работать с формами или UI
    • Нет дополнительного провайдера в цепочке авторизации
    • Дополнительный способ удержать игрока на площадках без авторизации

Поддерживаемые площадки

  • Яндекс.Игры
  • Google Play
  • Android (альтернативные сторы)
  • Web (свои сайты)
  • VK Play
  • GameMonetize
  • GamePix
  • WG Playground
  • Площадки без поддержки
  • CrazyGames
  • GameDistribution
  • Одноклассники
  • SmartMarket
  • Вконтакте
  • Kongregate
  • PlayDeck
  • Концепция

    Каждому игроку при создании присваивается секретный код в рамках проекта и площадки.

    Для поддержки с вашей стороны, вам необходимо:

    • Проверить, что на площадке доступна авторизация через секретный код;
    • Отрисовать окно профиля:
      • Показать секретный код игрока, желательно с пояснением и кнопкой копировать для удобства;
      • Кнопка входа / смены аккаунта;
        • При нажатии вызвать метод входа gp.player.login()
        • При входе сработает событие успешной авторизации gp.player.on('login')
        • Перерисовать интерфейс / сцену, обновив данные игрока

    Методы

    Узнать, что на площадке доступна авторизация через секретный код можно через метод FREE:

    gp.platform.isSecretCodeAuthAvailable; // boolean

    Получить секретный код, чтобы отобразить его в игре можно через метод FREE:

    gp.player.get('secretCode');

    Вызвать окно авторизации можно через метод +0-1 Request:

    gp.player.login();

    Дождаться события авторизации можно через подписку на событие FREE:

    gp.player.on('login', (success) => {});

    Примеры

    Пример работы с секретным кодом с поддержкой авторизации через площадку:

    // Пример контроллера модального окна профиля
    const profileModal = {
    // Поле под визуальное отображение секретного кода игроку
    secretCodeTextField: {
    setText(secretCode) {
    // Установить текст поля под секретный код
    },
    },

    // Кнопка входа через секретный код
    buttonSecretCodeAuth: {
    show() {
    // Отобразить кнопку в профиле игрока
    },
    onClick() {
    // Показываем окно входа
    gp.player.login();
    },
    },

    open() {
    // Открыть модальное окно

    // Показать внутри окна кнопку входа по секретному коду
    this.buttonSecretCodeAuth.show();
    // Показать секретный код игроку
    this.secretCodeTextField.setText(gp.player.get('secretCode'));
    },
    close() {
    // Закрыть модальное окно
    },
    };

    // Пример контроллера КНОПКИ входа через встроенную в площадку авторизацию
    const buttonNativeAuth = {
    show() {
    // Отобразить кнопку в игре
    },
    onClick() {
    // Показываем окно входа
    gp.player.login();
    },
    };

    // Пример контроллера КНОПКИ показа модального окна профиля игрока
    const buttonOpenProfileModal = {
    show() {
    // Отобразить кнопку в игре
    },
    onClick() {
    // Открываем модальное окно профиля игрока
    profileModal.open();
    },
    };

    // Игра запущена
    function onGameStart() {
    // Ожидаем событие входа
    gp.player.on('login', (success) => {
    if (success) {
    // Закрываем окно профиля игрока
    profileModal.close();
    // Обновляем интерфейс с данными игрока
    game.reloadUserUI();
    } else {
    // обрабатывать ошибки не нужно, они обрабатываются в нашем UI или UI площадки
    // Причиной неудачи может быть только закрытие окна авторизации игроком
    }
    });

    // Проверяем поддерживает ли площадка авторизацию
    if (gp.platform.hasIntegratedAuth) {
    // Показываем кнопку входа через авторизацию площадки
    buttonNativeAuth.show();

    // Проверяем доступна ли на площадке авторизация по секретному коду
    } else if (gp.platform.isSecretCodeAuthAvailable) {
    // Показываем кнопку открытия профиля
    buttonOpenProfileModal.show();
    }
    }

    Оставайтесь на связи

    С другими разделами документации вы можете ознакомиться здесь. Для начала работы вы можете ознакомиться с нашими туториалами.

    Сообщество GamePush в Telegram: @gs_community.

    Для ваших обращений e-mail: [email protected]

    Желаем вам успехов!