假设我们有一条路由,如果用户已在其他公共资源中登录,则可以选择显示受保护资源。
在用户登录之前,我不会呈现受保护的资源,但用户可以查看受保护的资源,即使该组件未呈现,因为应用程序也会加载该受保护组件的数据。 那么可以看到这些数据吗?
如果我们使用react连接节点服务器会是什么情况,如果我们刚刚部署了没有任何后端的react应用程序会怎么样?
澄清:这只是尝试了解反应生产构建的实际工作
答案 0 :(得分:0)
您永远不应该将受保护资源与客户端一起发送。虽然未呈现,但可以读取发送的所有数据。您只需打开chrome dev工具并阅读代码即可。可以读取发送到浏览器的任何内容和所有内容。
受保护的数据应存储在后端,并且每次用户请求您需要进行身份验证的数据时。这通常由称为JWT和其他方法的东西完成。它是如何工作的,当用户向服务器发送用户名和密码时,服务器会验证它们是否匹配并发回和令牌。对受保护数据的每个后续请求都将随身携带令牌,以便您知道该用户已经过验证。
阅读this了解有关JWT的更多信息。
答案 1 :(得分:-1)
您应该想象与您的服务器通信的代码不是您的javascript。如果您正在制作未经身份验证的API请求,那么任何人都可以编写代码来点击您的API并获得响应,他们甚至可以使用您的代码作为模板来启动它们。
专门回答你的问题,除非有东西被渲染,否则它不会出现在DOM中,因此它不会被看到。例如,如果你要将一个组件作为一个孩子<Example> <div>FIND ME</div> </Example>
传递,然后永远不会像<div>Inner Example </div>
那样调用孩子,那么如果你检查了DOM那么就不会是<div>FIND ME</div>
< / p>