我的后端有两个React前端:第一个是所有用户都使用的,第二个是只能由is_staff用户使用的管理面板。
使用simplejwt令牌限制访问的最佳方法是什么?
我已经重写了TokenObtainPairSerializer,以包含其他字段,比如'is_staff‘。
所以我有两个问题:
发布于 2021-01-25 01:26:18
可以使用is_staff标志在前端进行可视化检查,但仅限于具有此类权限的用户的视图必须在后端受到保护。
假设您正在使用Django Rest框架,保护视图的最佳方法是使用权限,或者更准确地说,使用自定义权限。
from rest_framework import permissions
class IsStaffUser(permissions.BasePermission):
def has_permission(self, request, view):
return request.user and request.user.is_staff而他们
from rest_framework.permissions import IsStaffUser
class StaffViewModelViewSet(viewsets.ModelViewSet):
permission_classes = (IsStaffUser,)有关这方面的更多内容可在以下网站找到:
发布于 2021-01-20 13:35:07
为django视图创建权限类,为允许的用户和不允许的用户提供访问权限。
例如,您的当前逻辑声明,is_staff用户只应被允许登录到Admin。简单地添加一个允许或不允许用户登录到您的管理门户的权限类可以很容易地完成。如果同时使用单个JWTAPI,则应该在此API上使用中间件来检测数据来自何处,因为_requests.META包含这些数据。您可以使用此元数据检测是否允许用户全部进入后端。
发布于 2021-01-24 18:25:23
将is_staff编码在jwToken中,当用户发送带有jwToken的请求时,在后端对其进行解码,然后根据该属性检查is_staff用户是否可以做任何您想做的事情。
https://stackoverflow.com/questions/65757598
复制相似问题