Django活塞-是否有登录所需的装饰器?如果不是,我们如何提出错误?

Django活塞-是否有登录所需的装饰器?如果不是,我们如何提出错误?,django,django-authentication,django-piston,Django,Django Authentication,Django Piston,我一辈子都不知道如何确保用户通过了活塞的身份验证。这是我试过的 活塞中需要的装饰器。这似乎不起作用,所以我在活塞中查找并找到了身份验证 HTTPBasicAuthentication似乎是让用户登录,而不是确保用户通过身份验证。我只是想在发布数据之前确保它们经过身份验证 手动编写代码以检查user.u是否经过身份验证。但是,当用户未经身份验证时,如何引发与活塞的错误响应一致的错误 在这之后,我被卡住了。谢谢你的帮助 更新:好的,我找出了错误部分。至少,我可以手动完成。万一有人想知道,就是这个 f

我一辈子都不知道如何确保用户通过了活塞的身份验证。这是我试过的

  • 活塞中需要的装饰器。这似乎不起作用,所以我在活塞中查找并找到了身份验证
  • HTTPBasicAuthentication似乎是让用户登录,而不是确保用户通过身份验证。我只是想在发布数据之前确保它们经过身份验证
  • 手动编写代码以检查user.u是否经过身份验证。但是,当用户未经身份验证时,如何引发与活塞的错误响应一致的错误
  • 在这之后,我被卡住了。谢谢你的帮助

    更新:好的,我找出了错误部分。至少,我可以手动完成。万一有人想知道,就是这个

    from piston.utils import rc
    resp = rc.BAD_REQUEST
    resp.write("Need to be logged in yo")
    return resp
    
    • 在handlers.py中为匿名客户端创建一个单独的处理程序,如所述
    • 使用
      authentication
      参数在URL.py中设置
      资源,如中所示
    编辑: 实际上,通过在
    活塞.authentication.HttpBasicAuthentication
    中登录用户,可以确保用户已通过身份验证。试试这个

    def read(self, request):
        return {'user': request.user.is_authenticated()}
    
    在处理程序中,使用
    curl-u user:password
    你会得到

    {
        "user": true
    }
    

    在您的响应正文中。

    您的错误部分工作正常,但您返回的是400状态代码,这是一个错误的请求,如果返回未经授权的401状态代码,则更为“RESTful”

        resp = HttpResponse("Authorization Required")
        resp.status_code = 401 
    
    以下是所有状态代码的列表: