План подписки Auth0 app_metadata

Я разрабатываю приложение для викторины, которое требует авторизации только для подписавшихся пользователей.

Как это сделать? Я подумываю поставить метаданные (is_subscribeed) в true для подписанного члена и дать область, чтобы он / она мог получить разрешения.

Но я не знаю, как это сделать. Пожалуйста помоги. Документы так запутанно

1 ответ

Решение

Здесь есть две отдельные проблемы.

  • Где хранить информацию о подписке. app_metadata Это хорошо, или вы можете сделать это в бэкэнд-базе данных (в зависимости от приложения). Клиентское приложение, вероятно, будет обрабатывать подписки и отвечать за обновление этого значения. Если вы храните значение в app_metadataвы будете использовать Management API v2 для изменения профиля пользователя из приложения, которое обрабатывает подписки.

  • Добавьте область авторизации на основе статуса подписки. В этом случае вы бы использовали правило для добавления настраиваемой области на основе значения is_subscribed поле. То есть:

function (user, context, callback) {if (user.app_metadata && user.app_metadata.is_subscribeed) {
    context.accessToken.scope = ['read:quiz'];
  } else {
    // удаляем возможность читать тест, если не подписаны.
    context.accessToken.scope = [];
  } обратный вызов (нуль, пользователь, контекст);
}

Если вы решили сохранить информацию о подписке в серверной базе данных, а не в app_metadata, вы просто получите доступ к базе данных из правила в приведенном выше коде.

Другие вопросы по тегам