我正在开发一个测验应用程序,该应用程序需要授权,只有订阅的成员才能看到。
怎么做?我想将订阅成员的元数据(is_subscribed)设置为true,并给出范围以便他/她可以获得权限。
但是,我不知道该怎么做。请帮忙。文档太混乱了
答案 0 :(得分:0)
这里有两个不同的问题。
保留订阅信息的位置。 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
中,则只需从上述代码中的规则访问数据库。