我正在尝试在我的Web应用程序中集成django-rest-auth软件包。到目前为止,我可以使用django-rest-auth软件包提供的API注册用户,发送密码重置电子邮件和登录。
现在,当我发送登录请求时,它会返回"令牌"成功验证后。
如何在进一步的请求中发送身份验证令牌?例如,我正在尝试使用GET /rest-auth/user
来抓取用户,但它正在给我一个回复Authentication credentials not provided
。我尝试通过HTTP基本身份验证传递令牌(base64编码令牌作为用户名,并将密码保留为空)。我仍然无法工作。
任何人都知道我应该如何在请求中传递此令牌?
答案 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 您需要在标头中发送令牌
$.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中自动查找标头中的令牌并使用令牌获取用户数据。