3

因此,我一直在试图找出如何在SPA应用程序中处理授权而不是身份验证的最佳实践。授权在SPA或客户端应用程序

说我有一个客户端MVC(角度,vuejs等..)与api后端,我们如何管理使用授权的应用程序?

例如,用户和经理都可以访问,但其中一个访问(视图中的功能)比另一个访问更多。如果他们都在客户端使用相同的用户界面,那么如何根据他们的访问权限保护和呈现正确的视图?可以选择获取他们的角色/声明列表,并根据它确定在客户端上呈现的内容,但由于基于JS,因此可以轻松绕开。

听起来,客户端mvc应用程序可能不是正确的解决方案,SSR应用程序更适合这一点。如果是这样的话,那么手机壳呢?你如何解决移动设备的相同问题,而无需开发真正的原生应用程序?

+1

另一个问题,如果你创建一个客户端应用程序,跟踪授权规则的最佳方式是什么?你是否一次抓取它们,将它们保存在本地,或者是否进行API调用以检查每个规则?安全和效率方面的最佳实践? – mghz

回答

0

这是一个非常好的问题,这也是我长期以来的想法。我不知道为什么没有人回答这个问题。我了解一些这方面的文章和教程,并在所有这些,他们提出你提到的同样的事情:

“让他们的角色/索赔清单,并根据其决定什么 呈现在客户端“

正如你也提到了,它可以规避,但我想是因为,授权也将在服务器端来完成,那么无论用户如何与前端JS篡改(例如通过使用浏览器的开发工具),他/她不能pa ss授权后卫。例如,他们可能可以添加删除按钮的所有评论(除自己的评论),但他们点击后,其他用户的评论删除按钮。 由于服务器端授权,服务器将不会授权删除操作。所以你提到的方法似乎是合法的。