如何在Django rest框架中设计基于订阅计划(条带)的权限?

如何在Django rest框架中设计基于订阅计划(条带)的权限?

问题描述:

我正在构建一个SaaS产品,其中订阅发生在Stripe的集成中。我有多个订阅计划,某些API仅限于高级/付费计划。我如何构建API权限以便与动态计划一起使用?可以在Stripe的仪表板上添加或删除计划,并与我的后端模型同步。有没有办法使用管理面板将某些端点关联到计划而不修改代码库?如何在Django rest框架中设计基于订阅计划(条带)的权限?

您可以使用restframework写下自定义权限类,因为您可以检查是哪种类型的平台,如果用户具有权限,可以引发异常的基础之一。

+0

可以添加或删除计划。我不想在添加/删除计划时在代码中进行更改。我应该可以使用管理面板将某些API端点关联到特定的计划。创建用户组并添加基于组/角色的权限是一种选择。但我想知道是否有更好的设计模式。 – pnhegde

+0

你可以在URL中使用计划ID。 –

我有类似的问题,并考虑将django组作为一个计划与权限集。所以看起来对你也可能有帮助。 Django用户可以有不同的组,因为用户可以有不同的条纹计划。组拥有一组权限,并且Plan也必须拥有它们。 但是我刚刚开始思考,所以不知道如何将计划附加到组,inerit或使oneToOne关系。

有趣,但我正在寻找这种逻辑的准备实施。

更新: 找到这个回购,它似乎是有用的。 https://github.com/dj-stripe/dj-stripe/blob/master/djstripe/models.py