Django REST框架 - 如何快速检查用户权限?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django REST框架 - 如何快速检查用户权限?相关的知识,希望对你有一定的参考价值。
我通常使用permission_required
装饰器来快速拒绝用户访问视图。
from django.contrib.auth.decorators import permission_required
@permission_required('my_app.view_mymodel',login_url='/sign_in/')
def my_view(request):
...
现在,我正在使用DRF,我正在尝试找到一种检查用户权限的正确方法。现在,我正在使用DjangoModelPermissions
这很好,但由于它根据定义的视图的查询集工作,有时我需要检查不是为视图的查询集定义的权限。
有没有办法通过提供烫发字符串列表来快速检查权限?
注意:我知道我可以扩展BasePermission
并定义我自己的逻辑,但会产生很多类。
答案
你可以通过使用DRF
's decorators(@api_view
和@permission_classes
)来实现这一目的:
from rest_framework.decorators import api_view, permission_classes
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
@api_view(['GET'])
# At first, you should define your view as an API view
# by using the @api_view decorator
@permission_classes((IsAuthenticated, ))
# With the @permission_classes decorator you can provide a tuple
# with the desired permissions for this view
def example_view(request, format=None):
content = {
'status': 'request was permitted'
}
return Response(content)
现在您的example_view
只能由经过身份验证的用户访问。
以上是关于Django REST框架 - 如何快速检查用户权限?的主要内容,如果未能解决你的问题,请参考以下文章
<script> 的 Django REST 框架密码安全性
如何在带有 Django Rest 框架的 React 前端使用 Django 用户组和权限
如何知道哪个用户被分配给了令牌(JWT Django rest 框架)?