10

所以我一直在尝试找出如何在 SPA 应用程序中处理授权而不是身份验证的最佳实践。

假设我有一个带有 api 后端的客户端 MVC(角度、vuejs 等),我们如何使用应用程序的授权进行管理?

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

在我看来,客户端 mvc 应用程序可能不是正确的解决方案,而 SSR 应用程序更适合于此。如果是这样的话,那手机壳呢?您如何在无需开发实际的原生应用程序的情况下为移动设备解决同样的问题?

4

1 回答 1

1

这是一个很好的问题,我也想了很久。而且我不知道为什么没有人回答这个问题。我阅读了一些关于此的文章和教程,并且在所有这些文章和教程中,他们都提出了与您提到的相同的事情:

“获取他们的角色/声明列表,并据此确定在客户端呈现什么”

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

于 2018-01-10T08:47:03.090 回答