3

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

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

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

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

4

2 回答 2

3

如果要使用令牌身份验证,则必须设置AuthorizationHTTP 标头。从文档:

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

授权:令牌 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b

在 ajax 调用中,您可以使用这样的标头:

$.ajax({
    type: 'POST',
    url: url,
    beforeSend: function (request)
    {
       request.setRequestHeader("Authorization", "Token 9944b09199c62bcf9418ad846dd0e4bbdfc6ee4b");
    },
});
于 2016-03-15T14:33:45.517 回答
1

您需要在标头中发送令牌

在此处输入图像描述

$.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 中自动在标头中查找令牌并使用令牌获取用户数据。

于 2016-03-16T04:04:05.943 回答