План подписки 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
, вы просто получите доступ к базе данных из правила в приведенном выше коде.