【发布时间】:2020-04-01 08:26:50
【问题描述】:
我正在构建一个使用 redux 作为状态管理器和一个 express node js 作为后端服务器的单页反应应用程序,但我不知道在应用程序中授权我的用户的最佳方式是什么!
如果是 php 或 express-js 网站,我可以使用 PHPSESSION 或 express-session 来管理用户会话数据,但现在单页 Web 应用程序与后端分离,我无法像以前那样管理会话!
我的想法是为每个新的 Web 请求创建一个会话 ID,然后将其保存在本地存储中以供客户端使用,然后在服务器中将所有需要的信息存储在数据库中,当应用程序有 API 调用时,在请求中发送该 ID标题。然后我们可以使用该实现的会话来检查授权。
但我想是否有更简单的方法来处理这个问题,无需自己进行会话实现。
(我不想使用 firebase 或 okta 等第三方服务,也不想将所有会话数据保存在 JWT 等客户端部分。)
【问题讨论】:
-
嗯...由于您使用的是 Redux,并且用户会话看起来像全局状态,您可以将令牌存储在商店中。这还不够吗?
-
另外,为什么要为每个请求创建一个新的会话 ID?我认为它可能有很多异步问题。您每次只能执行一个请求!
-
@Macabeus 是的,我可以存储它,但我的主要问题是关于后端部分.. 我应该实现自己的会话管理器吗?
-
@aminmsh 请更新问题的标签。我认为问题是关于前端部分的(请标记
redux,reactjs...)。此外,最好使用第三方解决方案,因为它太容易做错事并打开安全漏洞。
标签: express session redux web-applications authorization