现在我用Django rest-framework制作了一些API . 我使用JWT进行令牌认证 .
此时,我对令牌权限有一些疑问 .
如何在Django中检测令牌权限?
例如,有 user A
和 user B
.
当 user A
写文章"test"时,文章"test"只能由 user A
编辑或删除 .
但是如何检测文章"test"的许可?
每次用户登录时,令牌都会被更改 . 因此,通过令牌检测不是正确的方法 .
我搜索谷歌几个小时,如果有任何解决方案 . 有没有办法通过令牌确定用户权限?
提前致谢!
2 回答
确保在settings.py中有以下JWT设置dict:
通过适当地设置
JWT_EXPIRATION_DELTA
,可以控制令牌到期!JWT身份验证允许您识别之前已注册Django应用程序的用户,这要归功于他们发送到您的服务器的每个请求附带的令牌 . 然后,权限(您根据需要定义和整形)允许您允许或不允许用户访问/编辑给定的资源/页面 . 更实际的是,您想要实现的目标可以设置如下(假设您使用基于类的视图):
哪里:
JSONWebTokenAuthentication是djangorestframework-jwt提供的身份验证类 .
IsOwner是一个Permission类,您需要编写该类以检查当前用户是否是给定视图/ API endpoints 托管的资源的所有者 . (More on this here) .