我正在尝试从我的服务器从一个React应用程序获取用户数据。
登录工作正常,我可以在浏览器中看到响应对象,包括访问令牌。
此函数返回的response.json
const handleLogin = async () => {
try {
const response = await fetch("/url/api/manager/login", {
method: "POST",
body: JSON.stringify({ email, password }),
headers: {
"Content-Type": "application/json",
},
});
const body = response.json();
console.log(body);
const token = body.token;
console.log(token);
setAccessTokenCookie(token);
console.log(accessToken);
if (response.ok) {
//const bodyText = response.text();
//console.log(bodyText);
handleLoginBool();
console.log("Login successful");
} else {
console.log(response);
console.log("Login failed");
}
} catch (error) {
console.error("Error logging in:", error);
}
};
看起来像这样:
[Log] Promise (LoginForm.jsx, line 54)
result: Object
manager: {_id: "6366495804b9c34feae0074d", name: "ManagerForTestMessageAddressedTo1", email: "ManagerForTestMessageAddressedTo1@web.de", password: "$2a$10$rHSfGfSlHWPJvFrT7vyBmeDB5K48K01pxUtgQCgK3IOfyz1FqkgTS", street: "default", …}
refresh_token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI2MzY2NDk1ODA0YjljMzRmZWFlMDA3NGQiLCJpYXQiOjE2Nzc4ODU5MTh9.8EaHGyWHvSepjYGOZKLv_mGgIj03WfKBKB…"
token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI2MzY2NDk1ODA0YjljMzRmZWFlMDA3NGQiLCJpYXQiOjE2Nzc4ODU5MTh9.SWVp670AOHUboO33KvTpgfL60ljmnfAYWu…"
Object Prototyp
status: "resolved"
Promise Prototyp
但是我不知道也找不到任何地方可以访问令牌并将其赋给变量。
正如您在函数中看到的,我尝试通过ContextAPI将令牌保存在cookie中。
问题是,我不知道该如何处理这个令牌。我尝试了所有我能想到的方法......如果能得到一些帮助,我将非常感激。谢谢你读到这篇文章。
问题是,我不知道该如何处理这个令牌。我尝试了所有我能想到的方法......如果能得到一些帮助,我将非常感激。谢谢你读到这篇文章。
1条答案
按热度按时间mqkwyuun1#
根据@丹尼尔A.白色的评论-
response.json()
返回一个承诺,因此您需要添加一个await