使用 Flux/React 应用存储身份验证详细信息

Storing authentication details with Flux/React app

我目前正在使用 flux 和 react 开发 nodejs 应用程序。特别易熔。对于用户身份验证,我使用 passport.js,它简化了验证用户、创建会话和验证会话的过程。验证会话后,我的服务器会发回一个用户对象。

{ _id: foo, email: foo@bar.com } 

然后我的身份验证商店有一个方法 IsLoggedIn 来 return 商店是否有用户。但是我意识到这并不安全,因为如果商店中的数据被操纵,即使用户实际上没有登录,商店也会 return isLoggedIn。我目前的处理方式是,当用户调用需要身份验证的 apis 时,我会在 api 调用中检查身份验证。所以基本上,如果恶意用户弄乱了通量存储数据,他们可以看到针对已登录 user/different 组件的操作,但他们实际上无法修改任何内容。我打算为用户管理员权限做同样的事情。我的问题是,有没有更好的方法来处理这个问题? (即不向客户端公开数据的更好方法)

不,没有更好的方法。

客户端总是可以被恶意用户操纵,你不能盲目地相信它:你总是必须像你已经做的那样在服务器端实现安全性。