所以我正在尝试使用令牌制作身份验证系统。这通过发送一个带有令牌的 get 请求来工作,API 应该返回信息。我遇到了一个错误,它是 "serve": {
"builder": "_____________",
"options": {
"browserTarget": "______",
"port": 54751
"fallbackPort": 23000 <----------------------------- like this
},
,并且错误指向这一行 TypeError: Cannot read property 'Error' of undefined
。所以我猜这意味着 API 的响应没有被放入 if (UserData.Error == "Token not valid") {return false}
。 API 工作正常,如果令牌正确,这里是响应:
UserData
这是令牌不正确时的响应
{
"username": "admin",
"is_staff": true,
"email": "admin@gmail.com"
}
这是我的代码:
{
"Error": "Token not valid"
}
答案 0 :(得分:1)
由于 ajax 请求在 js 中以异步方式工作,我们可以使调用与 async await
同步。
async function isAuthenticated() {
const authtoken = localStorage.getItem('AuthToken')
if (authtoken == null) {
return false
} else {
let UserData;
UserData = await axios.get(`http://localhost:8000/api/token/?token=${authtoken}`).then(function(request) {
return request.data
})
if (UserData.Error == "Token not valid") {return false}
else {return UserData}
}
}
# while executing use await
userData = await isAuthenticated()