【问题标题】:View authorization with angular and UI-Router considerations使用角度和 UI-Router 考虑查看授权
【发布时间】:2015-09-22 16:23:48
【问题描述】:

首先,我的客户端代码是纯 HTML、JavaScript 和 angular.js。我的服务器端 API 使用 Asp.Net Web API 控制器。

工作this similar example 我厌倦了将用户角色信息传递给客户端。我也厌倦了在我的路线配置中存储视图的权限。我的服务器端控制器和方法用于检查传入请求并授权特定用户。

如果我的服务器端只允许进行授权调用,我是否应该过于担心客户端权限?例如,假设一个用户和任何管理员都可以查看该特定用户的个人资料。如果用户或管理员以外的其他人尝试导航到该配置文件,则不会显示数据。将产生来自服务器的错误。如果用户未经授权,客户端代码可以重定向用户。

我很想知道其他开发人员为这种类型的场景做了什么。

【问题讨论】:

    标签: c# angularjs asp.net-web-api angular-ui-router


    【解决方案1】:

    这主要取决于您的应用程序规范或您自己的愿望。将用户角色信息传递给客户端可以帮助您以多种方式增强用户体验。除此之外,由于前端不同部分的角色检查,理论上用户将无法对您的 API 端点进行任何请求,这将由于未经授权的请求而以服务器错误结束。

    让我们举几个例子:

    1. 您有一个链接(比如说在导航栏中)到您的应用的管理部分。您真的不想将该链接公开给普通用户,因为他们最终会点击它。这将导致来自服务器的未经授权的响应,并随后被重定向到上一页。 - 在我看来这是完全没有必要的

    2. 您有一些用户和管理员都可以编辑的编辑表单。但是,管理员可以编辑更多不允许用户使用的字段。如果这些字段是由普通用户编辑的,您真的想隐藏这些字段,以防止来自服务器的未经授权的不必要响应。

    3. 您需要“细化”您对用户页面的权限。因此,如果您的角色不允许,您并不是真的不想显示指向该用户详细信息的链接。

    4. 如果您在客户端应用程序中存储了角色,那么作为最终用户,您无需通过服务器往返来确定您确实无权查看某些内容。当然,你仍然必须有服务器端授权。

    请记住,这些场景纯粹是为您提供少数场景的示例,在这些场景中,您也可以通过在客户端担任角色而受益匪浅。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-02
      • 1970-01-01
      • 1970-01-01
      • 2016-10-15
      相关资源
      最近更新 更多