【问题标题】:Django rest framework jwt token permissionDjango rest 框架 jwt 令牌权限
【发布时间】:2018-11-19 20:18:22
【问题描述】:

现在我用 Django rest-framework 制作了一些 API。我使用 JWT 进行令牌认证。
此刻,我有一些关于令牌权限的问题。
如何在 Django 中检测令牌权限?

例如,有user Auser B
user A写文章“test”时,文章“test”只能被user A编辑或删除。
但是如何检测文章“test”的权限?

每次用户登录时都会更改令牌。所以通过token检测并不是正确的方法。

我在谷歌上搜索了几个小时,如果有任何解决方案。有没有办法通过token判断用户权限?

提前致谢!

【问题讨论】:

  • JWT 令牌用于身份验证。因此,一旦用户提供了有效的令牌,他就可以登录您的应用程序。此时,您可以检索用户实例,并且可以管理谁可以编辑、删除甚至添加新帖子。
  • 看到这个link

标签: django django-rest-framework jwt token


【解决方案1】:

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

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

地点:

  • JSONWebTokenAuthenticationdjangorestframework-jwt提供的认证类。
  • IsOwner 是一个 Permission 类,您需要编写它来检查当前用户是否是给定视图/API 端点托管的资源的所有者。 (More on this here)。

【讨论】:

  • 如何在 simple-JWT 库中实现这个?我已经使用 Apache 部署了一个 Django 应用程序,但得到的答案与上面的 OP 相同。
猜你喜欢
  • 2020-07-16
  • 2016-06-27
  • 2017-01-25
  • 2017-04-13
  • 2016-11-20
  • 2015-10-19
  • 2019-10-31
  • 2018-12-15
  • 2013-01-28
相关资源
最近更新 更多