因此,我一直在努力寻找有关如何在SPA应用中解决授权而非身份验证的最佳做法。
假设我有一个带有api后端的客户端MVC(angular,vuejs等),我们如何管理使用该应用程序的授权?
例如,用户和管理员都可以访问,但是一个人具有比另一个人更多的访问权限(视图中的功能)。如果他们在客户端使用相同的UI,您如何根据访问权限保护和呈现正确的视图?可以选择获取他们的角色/声明列表,并根据它确定在客户端呈现的内容,但由于这是基于JS,因此可以轻松规避。
对我来说,客户端mvc应用程序可能不是正确的解决方案,而SSR应用程序更适合这一点。如果是这样的话,移动案例怎么样?如何在不开发实际原生应用的情况下为移动设备解决同样的问题?
答案 0 :(得分:1)
这是一个非常好的问题,长期以来一直存在于我的脑海中。而且我不知道为什么没有人回答这个问题。我阅读了一些关于此的文章和教程,并且在所有这些文章和教程中他们提出了与你提到的相同的东西:
"获取他们的角色/声明的列表,并根据它确定什么 在客户端渲染"
正如您所提到的,它可以规避,但我认为,因为授权也将在服务器端完成,然后无论用户如何篡改前端JS(例如使用浏览器的开发工具),他/她无法通过授权后卫。例如他们可能会为所有评论添加删除按钮(除了他们自己的评论),但是在他们点击其他用户评论的删除按钮之后。 由于服务器端授权,服务器不会授权删除操作。所以你提到的方法似乎是合法的。