Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 我应该保护web应用程序中的UI吗?_Spring_Reactjs_User Interface_Spring Boot_Ria - Fatal编程技术网

Spring 我应该保护web应用程序中的UI吗?

Spring 我应该保护web应用程序中的UI吗?,spring,reactjs,user-interface,spring-boot,ria,Spring,Reactjs,User Interface,Spring Boot,Ria,我们有一个具有富客户端架构的web应用程序。 我们使用React作为客户端,使用Java/Spring作为后端 现在的问题是登录页面是否应该成为我们react程序的一部分? 据我所知,如果我们这样做,不利的一面是: 用户界面不受保护,每个人,甚至那些没有任何访问权限的人,都可以下载整个用户界面应用程序 每个人,即使没有访问权限,也必须在登录之前下载整个UI应用程序 正面是: 当有人登录时,页面不需要刷新 前端和后端部件可以完全分离,无需任何共享会话 在大多数已知的应用程序中,如gmail

我们有一个具有富客户端架构的web应用程序。 我们使用React作为客户端,使用Java/Spring作为后端

现在的问题是登录页面是否应该成为我们react程序的一部分? 据我所知,如果我们这样做,不利的一面是:

  • 用户界面不受保护,每个人,甚至那些没有任何访问权限的人,都可以下载整个用户界面应用程序
  • 每个人,即使没有访问权限,也必须在登录之前下载整个UI应用程序
正面是:

  • 当有人登录时,页面不需要刷新
  • 前端和后端部件可以完全分离,无需任何共享会话
在大多数已知的应用程序中,如gmail、slack等。富客户端应用程序(angular、react等)刚刚登录,我不知道有哪种应用程序采用第一种方法

  • 前端通常不受保护。有一些潜在的方法使制动代码变得更加困难,但这总是可能的
  • 由于1->,您不应在前端保留任何敏感数据
  • 作为将数据从Spring后端传输到React(或任何其他类似Angular、VueJS等)的安全方式,您可能应该使用JWT或OAuth2
  • 您可以在前端解码JWT(但只有后端可以验证它是否为有效令牌,所以不要担心),以获取编码的作用域、角色等以使用它们,例如显示仅限管理员的选项
  • 为了回答您的问题,登录页面肯定可以是React应用程序的一部分,因为它将发送登录凭据并从后端返回JWT
  • 当用户登录时,您将在每个请求的头中附加JWT,这样您的Spring安全性就可以检查它并授权请求

  • 那么,为什么我们在任何已知的网络应用程序(如gmail)中都没有看到这种方法呢?不知道谷歌为什么不想将gmail改为SPA,但我想我听说收件箱就是SPA。此外,你甚至可以在银行业看到这种方法。检查一下:一方面,谷歌登录在许多谷歌应用程序之间共享,因此成为许多应用程序使用的独立实体是有意义的