javascript - 使用 Express.js 后端 API 处理 React 中的 session

标签 javascript reactjs express session

我有一个 React 应用程序,其后端 API 是用 Express 编写的(所有/api 调用都在那里进行代理)。

成功进行用户身份验证后,我将生成一个 session ID 并将其存储在客户端的某个位置,以便稍后可以授权对 API 的请求。

在 Express 端实现此架构的最佳实践是什么?我是否应该只发送 session ID 以及每个 API 请求的正文,然后在所有后端调用之前使用授权机制?或者有一些更好/更简单的方法来做到这一点?

最佳答案

我的直觉是采取两个步骤。

  1. 在客户端上,设置 HTTP 客户端以将 sessionID 作为 header 传递。您可以使用 HTTP 客户端(例如 axios)或 ES6 中的 fetch 设置自定义 header,并应用这些 header > 发送到 Express API 的每个请求。

  2. 在您的应用上设置一个中间件函数,该函数将在服务器收到的每个请求上运行。 Express 有一个简单的方法,使用 app.all("*", yourAuthFunction) 来完成此操作。您还可以查看 app.use 将中间件应用于更具体的路由。这将确保您的 sessionID 在发送任何数据以响应客户端之前在服务器上得到验证。当然,您必须编写 auth 函数才能按照您希望的方式工作。

祝你好运!

关于javascript - 使用 Express.js 后端 API 处理 React 中的 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47956972/

相关文章:

javascript - 使用 jQuery 延迟 JavaScript 函数调用

javascript - 不是导入函数的函数错误

node.js - 利用浏览器缓存外部文件

javascript - 认证后如何查询显示用户信息

javascript - 折叠菜单不起作用

javascript - 解析 url - javascript

node.js - 流+Webstorm "Cannot resolve module"

javascript - ejs <%- body %> 不工作

javascript - 如何将带有上下文菜单的展开所有按钮添加到 d3.js 树中

reactjs - React Router 渲染空脚本标签