如何在Django-rest-auth中验证请求?

时间:2016-03-15 14:25:21

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

我正在尝试在我的Web应用程序中集成django-rest-auth软件包。到目前为止,我可以使用django-rest-auth软件包提供的API注册用户,发送密码重置电子邮件和登录。

现在,当我发送登录请求时,它会返回"令牌"成功验证后。

如何在进一步的请求中发送身份验证令牌?例如,我正在尝试使用GET /rest-auth/user来抓取用户,但它正在给我一个回复Authentication credentials not provided。我尝试通过HTTP基本身份验证传递令牌(base64编码令牌作为用户名,并将密码保留为空)。我仍然无法工作。

任何人都知道我应该如何在请求中传递此令牌?

2 个答案:

答案 0 :(得分:2)

如果您想使用Token Authentication,则必须设置Authorization HTTP标头。来自文档:

  

对于要进行身份验证的客户端,令牌密钥应包含在Authorization HTTP标头中。密钥应该以字符串文字" Token"作为前缀,空格分隔两个字符串。例如:

     

授权:令牌9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b

在ajax调用中,您可以使用以下标题:

$.ajax({
    type: 'POST',
    url: url,
    beforeSend: function (request)
    {
       request.setRequestHeader("Authorization", "Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b");
    },
});

答案 1 :(得分:1)

HI 您需要在标头中发送令牌

enter image description here

$.ajax({
            type:"POST",
            beforeSend: function (request)
            {
                request.setRequestHeader("Authority", 'Bearer 33a95862173cc0565fe502eb062b2e7c67e23a3a');
            },

并在django代码中使用

user = request.user
if user:
 return "User token verified"
elif :
 return "User token not verified"

在django中自动查找标头中的令牌并使用令牌获取用户数据。