我的设置是这样的:

运行Express的节点服务器运行API . 在子目录 client 内是一个Create React App项目, proxy 字段设置为Express API的URL .

我启动这两个进程并在我的浏览器中访问CRA,后者通过代理向Express API发送请求 .

一切正常 .

在制作中,我将构建CRA并从Express应用程序提供它,如下所示:

app.use('/api/:controller', (req, res, next) => {
    return router(req, res, next)
})
app.get('*', (req, res) => {
    res.sendFile(path.join(`${__dirname}/client/build/index.html`));
})

我唯一的障碍是如何处理身份验证 . 当在浏览器中初始化React应用程序以查看用户是否有会话时,我可以很轻松地将onload fetch 请求返回到API,但这似乎是浪费 .

在开发中(我猜这个问题的 生产环境 ),1)从传入的请求中读取cookie以及2)将 currentUser 对象传递给上面的 index.html ( 生产环境 中)或开发中的CRA是一个好方法 .

为了澄清,我想知道在将响应发送回浏览器之前是否有任何特定的CRA配方来处理来自服务器的身份验证? (在这个双用途代码库设置中)

确切的问题:在开发过程中,因为我正在运行 yarn run cra ,所以's spinning up it'拥有自己的webpack开发服务器,它为React应用程序提供服务 . 所以我不相信我能真正得到请求,然后再将其发送回浏览器 .