python - Django中的组基本权限rest api
问题描述
我正在为我的登录 api 使用 Django 休息框架。现在我想通过 api 只登录某些组用户。我已经创建了组并将用户分配给该组。我创建了一个权限类并用于 APIView,但它显示“未提供身份验证凭据”。
这是我的 permissions.py 类
from rest_framework.permissions import BasePermission
class FanOnlyPermission(BasePermission):
def has_permission(self, request, view):
if request.user and request.user.groups.filter(name='fan'):
return True
return False
这是我的观点.py
from rest_framework import views, permissions, status, generics
class UserLoginApiView(generics.GenericAPIView):
"""
User Login Api View
"""
permission_classes = (FanOnlyPermission, )
def post(self, request):
"""
Handle POST request
:param request:
:return:
"""
serializer = UserLoginSerializer(data=request.data)
if serializer.is_valid(raise_exception=True):
return Response(serializer.data, status=status.HTTP_200_OK)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
我已经通过邮递员尝试过。当我从permission.py 打印request.user 时,它穿上了“匿名用户”。
解决方案
推荐阅读
- ignite - Gridgain 作为高速数据存储
- reactjs - React 中的无限滚动
- laravel - 用户使用 loginUsingId() 方法登录后 Laravel 7 会话不持久
- c# - 在 Windows 上,如何通过“USB 选择性挂起”判断 USB 设备何时进入睡眠状态
- authentication - Azure 托管标识:DefaultAzureCredential:禁止对需要加密令牌的流的区域缓存身份验证服务令牌请求
- python - Python中的“$”是什么意思?
- php - 插件 WP CONTENT CRAWL - cURL 错误 60:SSL 证书问题:无法获取本地颁发者证书
- azure - 如何在 Azure Synapse Analytics 中自动部署 Spark 池和自定义 Spark jar 定义
- node.js - AWS lambda (nodejs) 是否在不同的执行中共享内存?
- python - 绘制仅共享 Y 轴的并排条形图