我正在使用NodeJS、Express和Passport构建一个API RESTful项目。我想在这个应用程序的前端使用ReactJS。我可以使用create-app-react为我的前端创建一个单独的项目,并在保留Passport优点的同时获取我的API吗?或者我应该始终在请求中发送用户信息?或者将我的前端服务放在API相同的服务器上?
是的,您可以在两个不同的端口上拥有客户端和服务器,并保持Passport的优势。
但是为了做到这一点,在您调用API时,请使用credentials: 'include'
。
因为默认情况下,fetch不会从服务器发送或接收任何cookie,如果网站依赖于维护用户会话,则会导致未经身份验证的请求(要发送cookie,必须设置凭据init选项)。
示例:
fetch('https://example.com', {
credentials: 'include'
})
.then( res => {
// Some stuff...
})
.catch(err => {
console.log(err);
});