Django REST框架JWT令牌权限

3
现在我用Django rest-framework创建了一些API,并使用了JWT进行令牌身份验证。目前,我有一些关于令牌权限的问题。如何在Django中检测令牌权限?
例如,有A用户和B用户。当A用户编写文章“test”时,“test”文章只能由A用户编辑或删除。但是我该如何检测有关“test”文章的权限?
令牌将在每次用户登录时更改。因此,通过令牌检测不是正确的方法。我在Google上搜索了几个小时,是否有解决此问题的解决方案?是否有一种方法可以通过令牌确定用户权限?
提前致谢!

1
JWT令牌用于身份验证。因此,一旦用户提供了有效的令牌,他就可以登录您的应用程序。在此时,您可以检索用户实例并管理谁可以编辑、删除甚至添加新文章。 - Chiheb Nexus
请查看此链接:https://en.wikipedia.org/wiki/JSON_Web_Token#Use - Chiheb Nexus
1个回答

0

JWT身份验证允许您识别之前已经注册到您的Django应用程序的用户,这要归功于附加到他们发送到您的服务器的每个请求的令牌。 然后,权限(由您定义和塑造)允许您让或不让用户访问/编辑给定的资源/页面。 更实际地说,您想要实现的内容可以设置如下(假设您使用基于类的视图):

class MyApiEndpoint(ApiView):
    authentication_classes = (JSONWebTokenAuthentication,)
    permission_classes = (IsOwner,)

其中:

  • JSONWebTokenAuthentication 是由 djangorestframework-jwt 提供的身份验证类。
  • IsOwner 是您需要编写的权限类,用于检查当前用户是否是给定视图/ API 端点托管的资源的所有者。(更多信息请参见此处)。

我该如何在simple-JWT库中实现这个功能?我使用Apache部署了一个Django应用,但是我得到的答案与上面的OP相同。 - retro_coder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接