我正在学习 SPA 中基于 token 的身份验证,我遇到了一个问题。想象一下我的应用程序中的身份验证过程是通过以下方式完成的:每当用户提供正确的凭据时,我都会给他一个 token 并将 redux 存储中的“已验证” key 更改为 true,这允许他在我的应用程序中查看私有(private)内容。我要隐藏的组件编码如下:
if(this.props.authenticated) {
return <SuperSecretComponentOfIlluminatiMasonic666Chemtrails />
} else {
return <PublicComponent />
}
我想知道这是否是一种安全的方法,因为任何人都可以安装 react-dev-tools,在浏览器中翻转“已验证”键,然后在不提供凭据的情况下查看我想隐藏的内容。我的组件应该以不同的方式编码,还是一切都很好,我只是出了点问题?我在很多教程中都看到过这种方法,但是这个问题让我晚上睡不着觉
最佳答案
您应该从服务器获取 protected 内容,并且该服务器应该仅在用户发送有效 token 时才传送内容。
这样,是的,任何人都可以在客户端中翻转开关,但这只显示 UI 组件,没有任何数据。
这是创建单页应用程序时常用的方法。只要您从一开始就没有在您的客户端中保存 secret 或敏感数据,它们就与您提供数据的服务器/API 一样安全。
关于node.js - 使用 react-devtools 破解身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45864034/