首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django-React身份验证:限制可以获得simpleJWT令牌的用户

Django-React身份验证:限制可以获得simpleJWT令牌的用户
EN

Stack Overflow用户
提问于 2021-01-17 05:21:23
回答 3查看 395关注 0票数 2

我的后端有两个React前端:第一个是所有用户都使用的,第二个是只能由is_staff用户使用的管理面板。

使用simplejwt令牌限制访问的最佳方法是什么?

我已经重写了TokenObtainPairSerializer,以包含其他字段,比如'is_staff‘。

所以我有两个问题:

  1. 仅仅检查前端的is_staff字段是否足够安全?在我看来不是个好主意。
  2. 如果我想创建第二个API条目,用于管理身份验证,并覆盖后端的身份验证逻辑,则只向工作人员用户发出令牌。确切地说,我应该重写什么方法/类来更改它?这是个好主意吗
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-01-25 01:26:18

可以使用is_staff标志在前端进行可视化检查,但仅限于具有此类权限的用户的视图必须在后端受到保护。

假设您正在使用Django Rest框架,保护视图的最佳方法是使用权限,或者更准确地说,使用自定义权限

代码语言:javascript
复制
from rest_framework import permissions

class IsStaffUser(permissions.BasePermission):
    def has_permission(self, request, view):
        return request.user and request.user.is_staff

而他们

代码语言:javascript
复制
from rest_framework.permissions import IsStaffUser

class StaffViewModelViewSet(viewsets.ModelViewSet):
    permission_classes = (IsStaffUser,)

有关这方面的更多内容可在以下网站找到:

Django Rest Framework工作人员仅限权限

Django Rest框架每个视图的自定义权限

Django Rest框架权限

票数 4
EN

Stack Overflow用户

发布于 2021-01-20 13:35:07

为django视图创建权限类,为允许的用户和不允许的用户提供访问权限。

例如,您的当前逻辑声明,is_staff用户只应被允许登录到Admin。简单地添加一个允许或不允许用户登录到您的管理门户的权限类可以很容易地完成。如果同时使用单个JWTAPI,则应该在此API上使用中间件来检测数据来自何处,因为_requests.META包含这些数据。您可以使用此元数据检测是否允许用户全部进入后端。

票数 1
EN

Stack Overflow用户

发布于 2021-01-24 18:25:23

将is_staff编码在jwToken中,当用户发送带有jwToken的请求时,在后端对其进行解码,然后根据该属性检查is_staff用户是否可以做任何您想做的事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65757598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档