如何在django中验证有效的超级用户

时间:2018-06-14 16:31:22

标签: python django django-rest-framework django-rest-auth

我在Django中创建了一个超级用户。有没有什么办法可以使用像Postman这样的REST API来验证超级用户凭证?或者我是否需要编写脚本化的REST API?

如果我的问题太广泛,请告诉我。我会更新我的问题。

此致

1 个答案:

答案 0 :(得分:3)

就个人而言,我使用django-rest-framework http://www.django-rest-framework.org/,它有一个名为django-rest-auth http://django-rest-auth.readthedocs.io/en/latest/的第三方模块,它提供API端点来处理登录,注册和其他用户访问。文档非常好,已经存在很长一段时间了。

django.contrib.auth用户模型具有布尔值,is_staff和is_superuser,并且有一个装饰器来检查人员https://docs.djangoproject.com/en/2.0/ref/contrib/admin/#the-staff-member-required-decorator

来自docs的例子

from django.contrib.admin.views.decorators import staff_member_required

@staff_member_required
def my_view(request):

您可以通过以下方式实现类似的东西轻松创建自己的装饰器:

def super_user_required(view_func=None, 
                          redirect_field_name=REDIRECT_FIELD_NAME,
                          login_url='admin:login'):
    """
    Decorator for views that checks that the user is logged in and is a superuser
    member, redirecting to the login page if necessary.
    """
    actual_decorator = user_passes_test(
        lambda u: u.is_active and u.is_superuser,
        login_url=login_url,
        redirect_field_name=redirect_field_name
    )
    if view_func:
        return actual_decorator(view_func)
    return actual_decorator

该软件包提供可选的JWT支持。 https://getblimp.github.io/django-rest-framework-jwt/