我在我的localhost上用node/axios后端运行我的React项目,没有任何错误。但是,由于部署在Heroku上,我似乎不能让我的Axios POST请求工作,它们给予了下面看到的错误。
useAuth钩子在用户登录时从url中获取代码okay,并将其从url中拉出来。但是它无法使用useAuth函数/request来获取访问令牌、刷新和axios POST请求上的过期令牌。
在Spotifys的 Jmeter 板中,我的heroku url位于重定向URI中。
注意:我是用自己的方式调试的,在使用node/axios方面几乎没有经验。所以我可能没有意识到那些看起来很明显的事情,并且做了一些不可能的事情--请随时指出它们。
在客户端文件夹中,使用Auth.js。
# The parameter code is as required in console
console.log(code)
useEffect(() => {
axios.post('https://heroku-url-inserted-here.com/login', {
code,
})
.then(res => {
setAccessToken(res.data.accessToken)
setRefreshToken(res.data.refreshToken)
setExpiresIn(res.data.expiresIn)
window.history.pushState({}, null, '/')
})
.catch((err) => {
console.log("Error in Effect 1: " + err)
console.log(err.response.data)
})
}, [code])
在server.js中,
第一个
我希望/login post设置并返回这三个标记以设置State,从而使主要功能能够像使用本地主机时那样工作。
1条答案
按热度按时间sqxo8psd1#
答案是:
我在本地主机测试环境中使用了.env,但没有在Heroku中设置任何配置值,因为.env是.gitignore文件的一部分。这意味着redirectUri、clientId和clientSecret在我的server.js中都是未定义的。
在Heroku中配置变量解决了以下问题:https://devcenter.heroku.com/articles/config-vars