gpt4 book ai didi

javascript - 即使 promise 为 200,也无法从刷新 token 生成新的访问 token

转载 作者:行者123 更新时间:2023-12-03 03:57:18 25 4
gpt4 key购买 nike

我正在尝试从refreshToken生成新的accessToken。使用 Oauth2 登录。我有这个代码:

  componentWillMount(){

AsyncStorage.multiGet([USER_TOKEN, USER_REFRESH_TOKEN,USER_REMEMBERED]).then((data) => {
console.log(data)
const userRemembered = JSON.parse(data[2][1])
console.log(userRemembered)
const userAccessToken = data[0][1]
console.log(userAccessToken)
const userRefreshToken = data[1][1]
console.log(userRefreshToken)


if (!userAccessToken) {
fetch("SOME_URL", {
method: "POST",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
refreshToken: userRefreshToken
})
})
.then((response) => {response.json(); console.log(response)}) //this logs 200
.then(responseData => {
console.log(responseData) //this logs undefined
})
.catch((error) => {
console.log(error)
})
}
else{
this.setState({
token:userAccessToken,
refreshToken: userRefreshToken,
isLoggedIn:userRemembered
})
console.log('token not expired')
console.log(this.state);
this.changeRoute(this.state)
}
})
}

在 Insomnia 中进行测试时,一切正常,我能够从刷新 token (我使用 AsyncStorage 存储的)生成 accessToken。

最佳答案

你忘了回来

.then((response) => {console.log(response); return response.json(); })

如果箭头函数定义中有 {},它将被解释为语句 block 。所以需要手动返回。 Docs .

(param1, param2, …, paramN) => { statements }

(param1, param2, …, paramN) => expression

// equivalent to: (param1, param2, …, paramN) => { return expression; }

关于javascript - 即使 promise 为 200,也无法从刷新 token 生成新的访问 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44885709/

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