Auth0 订阅计划 app_metadata
Auth0 subscription plan app_metadata
我正在开发一个问答应用程序,需要授权只有订阅会员才能看到。
怎么做?我正在考虑将订阅成员的元数据 (is_subscribed) 设置为 true 并提供范围,以便 he/she 可以获得权限。
但是,我不知道该怎么做。请帮忙。文档太混乱了
这里有两个不同的问题。
保存订阅信息的位置。 app_metadata
很好,或者您可以选择在后端数据库(特定于应用程序)中这样做。客户端应用程序可能会处理订阅并负责更新该值。如果将值存储在 app_metadata
中,您将使用 Management API v2 从处理订阅的应用程序更改用户配置文件。
根据订阅状态添加授权范围。在这种情况下,您将 use a rule to add a custom scope 基于 is_subscribed
字段的值。即:
function(user, context, callback) {
if (user.app_metadata && user.app_metadata.is_subscribed) {
context.accessToken.scope = ['read:quiz'];
} else {
// remove the ability to read a quiz if not subscribed.
context.accessToken.scope = [];
}
callback(null, user, context);
}
如果您决定将订阅信息存储在后端数据库中而不是 app_metadata
,您只需从上述代码中的规则访问数据库即可。
我正在开发一个问答应用程序,需要授权只有订阅会员才能看到。
怎么做?我正在考虑将订阅成员的元数据 (is_subscribed) 设置为 true 并提供范围,以便 he/she 可以获得权限。
但是,我不知道该怎么做。请帮忙。文档太混乱了
这里有两个不同的问题。
保存订阅信息的位置。
app_metadata
很好,或者您可以选择在后端数据库(特定于应用程序)中这样做。客户端应用程序可能会处理订阅并负责更新该值。如果将值存储在app_metadata
中,您将使用 Management API v2 从处理订阅的应用程序更改用户配置文件。根据订阅状态添加授权范围。在这种情况下,您将 use a rule to add a custom scope 基于
is_subscribed
字段的值。即:
function(user, context, callback) { if (user.app_metadata && user.app_metadata.is_subscribed) { context.accessToken.scope = ['read:quiz']; } else { // remove the ability to read a quiz if not subscribed. context.accessToken.scope = []; } callback(null, user, context); }
如果您决定将订阅信息存储在后端数据库中而不是 app_metadata
,您只需从上述代码中的规则访问数据库即可。