【发布时间】:2021-04-21 18:02:38
【问题描述】:
我的后端有两个 React 前端:第一个供所有用户使用,第二个是只能由 is_staff 用户使用的管理面板。
使用 simplejwt 令牌限制访问的最佳方法是什么?
我已覆盖 TokenObtainPairSerializer 以包含额外的字段,例如“is_staff”。
所以我有两个问题:
-
只是检查前端的 is_staff 字段就足够安全了吗?在我看来这不是一个好主意。
-
如果我想为管理员身份验证创建第二个 API URL 条目并在后端覆盖身份验证逻辑以仅向员工用户颁发令牌。我应该重写什么方法/类来改变它?这是个好主意吗?
【问题讨论】:
-
传递
is_staff是安全的,如果您确信您的所有 API 都在检查后端的权限。如果要覆盖身份验证逻辑,则必须覆盖rest_framework 的login视图。首先验证用户,然后检查他是否有员工访问权限,否则抛出 403。这是视图:github.com/encode/django-rest-framework/blob/… 通过在此处检查用户类型