首页 > 解决方案 > 我可以在 REST API 和 RectJS 中使用会话对象和会话 ID 进行身份验证吗?

问题描述

我们希望将现有的 Web 应用程序(基于 HTTP API)迁移到使用 ReactJS for UI 的 REST 服务模型。我们在当前应用程序中大量使用了 Session 对象(用于保存数据和进程)。是否可以使用相同的 Session 对象来保存数据和 Session ID 以进行 REST API + ReactJS 的身份验证过程?

标签: reactjsspringrestspring-mvc

解决方案


是的,没有。

基于随每个浏览器请求发送的 cookie 为特定 HTTP 客户端(例如,您的 Web 浏览器)保留一个会话。该浏览器请求是针对 HTML 网页(您当前的 Web 应用程序)还是针对返回 JSON(例如 API)的 URL 并不重要。因此,您可以重构应用程序前端的某些部分以使用相同的基于会话的身份验证(假设您的会话 cookie 允许的域和路径等内容)。

因此,重构后的前端可以简单地进行 HTTP 调用来检索数据,而后端可以使用存储在服务器会话中的数据进行相应的响应。

这确实意味着您需要仔细考虑 API 中的资源抽象,因为您不能简单地在 JavaScript 中访问服务器会话数据。

随着时间的推移,您可能会发现您想要重构您的身份验证/会话层,使其远离带有 cookie 的会话,并在本地存储中查看带有 JWT 的适当 IDS,但这远远超出了“我可以这样做”的范围。


推荐阅读