gpt4 book ai didi

javascript - 使用 Javascript 访问 Django Rest Framework API - 获取 token

转载 作者:行者123 更新时间:2023-11-30 08:25:43 24 4
gpt4 key购买 nike

我有一个使用 Django Rest Framework 的 API 设置。当通过 cURL 或 HTTPie 甚至可浏览的 API 访问时,它工作正常。 API 具有 token 身份验证,因此最初您必须提供将返回 token 的凭据。使用 HTTPie(甚至 curl)你可以这样做:

http POST http://127.0.0.1:8000/api/v1/api-token-auth/ username="user1" password="testpassword"

这将返回一个响应,例如:

HTTP/1.0 200 OK
Allow: POST, OPTIONS
Content-Type: application/json
Date: Sun, 03 Sep 2017 16:57:38 GMT
Server: WSGIServer/0.2 CPython/3.6.1
X-Frame-Options: SAMEORIGIN

{
"token": "fgfdgfdgfdgfdgd45345345lkjlj"
}

然后您将获取 token 并像这样执行 GET/PUSH/等操作:

http --json POST http://127.0.0.1:8000/api/v1/test/ test_text="Testing" 'Authorization: Token fgfdgfdgfdgfdgd45345345lkjlj'

我已经在 Google 上搜索了一段时间,但找不到关于上述两行如何翻译成 Javascript 的任何明确答案?我如何 (1) 通过凭据获取 token ; (2) 取回Token; (3) 使用token 发起GET 和PUSH 请求?

最佳答案

我同意您应该使用 Ajax。

您需要在应用的最开始进行 ajax 调用:

var data = {username:'user',password:'password'}

$.ajax({
type: 'POST',
data: data,
url: 'http://your_url',
success: function(res){
console.log(res)
$.ajaxSetup({
headers: {
"token": res.token
}
});
},
error: function(error) {
callbackErr(error,self)
}
})

尚未测试,但想法是使用 Ajax 调用获取 token 并使用 .ajaxSetup 将 token 保存到所有后续 ajax 请求的 header 中。

你可以这样做:

var data = {test_text="Testing"}
$.ajax({
type: 'POST',
data: data,
url: 'http://127.0.0.1:8000/api/v1/test/',
success: function(res){
console.log(res) //answer of api call.
});
},
error: function(error) {
callbackErr(error,self)
}
})

或者这个:

$.ajax({
type: 'GET',
url: 'http://127.0.0.1:8000/api/v1/ANOTHER_TES/',
success: function(res){
console.log(res) //answer of api call.
});
},
error: function(error) {
callbackErr(error,self)
}
})

更改调用的type 参数以更改您的请求。

关于javascript - 使用 Javascript 访问 Django Rest Framework API - 获取 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46025911/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com