带有 SPA 应用程序和 API 的会话

Posted

技术标签:

【中文标题】带有 SPA 应用程序和 API 的会话【英文标题】:Sessions with SPA application and API 【发布时间】:2020-01-14 12:02:58 【问题描述】:

我们正在使用带有 SPA (ReactJS) 的 ASP CORE 2.x (API),我需要知道跟踪用户会话的最佳策略是什么。该问题主要针对未经身份验证的用户,假设我们有一个购物车。购物车存储在数据库中,您如何保留访客用户的购物车项目?当猜测离开站点并返回时,我们需要显示购物车项目。

我计划让服务器生成一个会话并将其保存到客户端(在 cookie 中),但这意味着我需要从客户端站点调用“确保”会话到服务器......并且跟踪数据库中的会话。

有什么替代方案或建议吗?

【问题讨论】:

【参考方案1】:

您可以将购物车项目保存到localStorage,然后当用户回来时,只需对其进行补水。 如果你使用redux,我会推荐redux-persist

【讨论】:

【参考方案2】:

我会将客人的购物车与存储在购物车中的生成的 guid(ID? 您可以设置一些时间戳以定期从数据库中清除待处理的购物车。

【讨论】:

以上是关于带有 SPA 应用程序和 API 的会话的主要内容,如果未能解决你的问题,请参考以下文章

多次/循环请求 REST API 时处理连接丢失(客户端)

Symfony 4如何使用React设置SPA(单页面应用程序)?

OpenID Connect JWT 令牌验证和后端 api 的使用策略 - jwks 还是会话?

带有 Spring 会话的 Spring Security SAML

Angular+Web API 应用程序中的会话管理

Web API 2 入门——使用ASP.NET Web API和Angular.js构建单页应用程序(SPA)(谷歌翻译)