将 OAuth2 令牌限制为 Django 中的特定模型/视图



我正在使用Django Rest Framework在Django中开发我的第一个不仅仅是微不足道的API接口。我正在尝试创建一个 Web 服务,该服务为我的游戏托管高分表。然后,游戏将通过 API 通过 http-request 发布和检索他们的高分。

目前,我的模型结构如下所示:

  • 游戏
    • 高分表
      • 高分入口

现在,由于该服务将处理多个不同游戏的分数,我想为每个游戏提供一个单独的 oauth2 令牌,并限制对该游戏的 API 权限。我设法使用本指南设置了oauth2身份验证:http://www.django-rest-framework.org/api-guide/authentication

但是,目前它似乎可以访问整个API。接下来我检查了 http://www.django-rest-framework.org/api-guide/permissions,其中提到要将权限限制为子集功能,我需要自定义权限类。

基于这些信息,我尝试在谷歌上搜索有关如何使用 oauth2 执行此操作的示例。在同一页面中,有一个自定义类的示例。但是,我不知道如何将其应用于oauth2。我是否可以以某种方式为我的游戏模型设置特定access_token,以便在收到请求时,我可以将请求者的令牌与游戏自己的令牌进行比较?如果是这样,怎么办?

博士;如何为具有唯一 oauth2 令牌的模型创建自定义权限类?以便每个令牌向其相应的模型授予权限。

为了控制访问令牌权限,应使用范围。访问令牌作用域的思想是根据访问令牌作用域向定义的操作集、资源以及任何内容(由你决定)授予权限。在您的情况下,您应该为不同的游戏提供不同的范围。请注意,范围本身并不限制用户使用某些终结点、服务等。范围限制的应用方式取决于 OAuth20 提供程序。

相关内容

  • 没有找到相关文章

最新更新