我认为我有一个问题从我的Node后端传递到我的React前端,但是我有点不知道我不知道什么情况。有人可以帮忙吗?
问题在于:
我在后端有这条路线..
app.get('/account', ensureAuthenticated, function(req, res){
res.status(200).json({ user: req.user });
});
在成功的Steam Passport身份验证时吐出userdata JSON。当我查看由EJS视图生成的帐户页面时,我可以验证这是否有效。
在React服务器上,我有一个带有Steam auth链接的根页面。它成功进入Steam,然后重定向回到根页面。
当我尝试从根React页面对'/ account'进行JSON提取时,响应不再是JSON,而是来自后端'/ account'模板的HTML,但我当然需要JSON。
我认为它并不认可我是经过身份验证的,因为我在使用Chrome的高级REST客户端扩展程序执行GET请求时会得到相同的HTML响应。 我还应该注意,我通过Create React App的代理功能代理API服务器。
更新:问题解决了。
fetch('https://example.com:1234/users', {
credentials: 'include'
})
答案 0 :(得分:0)
听起来问题可能是由于app.get
调用的顺序或节点服务器的配置 - 可能是EJS模板。
我会寻找你在app.set('view engine', 'ejs');
之类的地方以及你正在做app.get('/account'...
的地方。
您希望在执行app.get('/account'..
之前app.set('view engine...
/account
如果你真的点击401
路线,你应该得到{{1}}或JSON回复,而不是HTML(EJS)。