【问题标题】:ReactJs frontend & Passport NodeJs backendReactJs 前端和 Passport NodeJs 后端
【发布时间】:2018-04-21 07:32:33
【问题描述】:

我正在使用 NodeJS、Express 和 Passport 构建一个 API RESTful 项目。对于这个应用程序的前端,我想使用ReactJS

我可以使用 create-app-react 为我的前端创建一个单独的项目并获取我的 API,同时保留 Passport 的好处吗?或者我应该在我的请求中始终发送用户的信息?还是在 API 的同一台服务器上提供我的前端?

【问题讨论】:

  • 您是在问是否可以为您的 API 提供一个单独的应用程序,而不是为您的 react 应用程序提供什么服务?当然可以。
  • 不,更多的是“我可以有一个单独的应用程序并在我的 API 上初始化本地护照的好处吗?”。如果是,我应该在 API 上的每个请求中发送用户数据吗?
  • 这取决于您的身份验证方式。如果您使用会话,那么您可以使用 redis 存储并在两个快速应用程序之间共享会话。
  • 是的,我正在使用会话。

标签: node.js reactjs passport-local


【解决方案1】:

是的,您可以在 2 个不同的端口上拥有一个客户端和一个服务器,并保持 Passport 的优势。

但为此,当你 fetch 你的 API 使用 credentials : 'include'

因为默认情况下,fetch 不会从服务器发送或接收任何 cookie,如果站点依赖于维护用户会话(要发送 cookie,必须设置凭据 init 选项),则会导致未经身份验证的请求。

例子:

fetch('https://example.com', {
  credentials: 'include'  
})
.then( res => {
  // Some stuff...
})
.catch(err => {
  console.log(err);
});

【讨论】:

    猜你喜欢
    • 2018-12-06
    • 2019-01-20
    • 1970-01-01
    • 2019-09-16
    • 2021-10-16
    • 2020-05-03
    • 2022-06-19
    • 2021-06-16
    • 2021-05-02
    相关资源
    最近更新 更多