从 Web Api 向 AngularJs 客户端返回权限

Posted

技术标签:

【中文标题】从 Web Api 向 AngularJs 客户端返回权限【英文标题】:Returning Permissions From Web Api to AngularJs client 【发布时间】:2017-01-04 01:51:24 【问题描述】:

我正在构建一个包含一组用户类型的应用程序。我有一个 .Net MVC 5 Web Api Web 服务和一个 angularjs SPA。我想让我的 SPA 显示页面与登录的用户类型相关。我正在使用不记名令牌进行身份验证,然后将其存储在 localStorage 中。

我曾想过制作 web api,返回带有用户声明和角色的令牌,然后我可以使用此信息来决定向用户显示哪些页面,但是我担心用户可以轻松更改此信息。

您能否告诉我如何在不引入安全漏洞的情况下实现这一目标。

提前致谢。

【问题讨论】:

这是单次下载的易用性和个人保护之间的持久战。您可以随 ACL 负载一起发送其他页面,或者允许用户巧妙地验证在服务器端执行的操作,防止不适当的查看或更新。 【参考方案1】:

在作为您的控制器的服务器端,您应该添加一些授权过滤器。将令牌解析给请求用户并验证授权。实现一些缓存,这样您就不会每次都查询数据库(或某些用户存储)。您无法控制客户端。他们可以随心所欲地在显示中进行更改并编写他们的请求。这就是为什么将这些身份验证/授权放在每个请求中很重要的原因。

【讨论】:

以上是关于从 Web Api 向 AngularJs 客户端返回权限的主要内容,如果未能解决你的问题,请参考以下文章

为啥当包含控制器动作的数据时日期时间值会发生变化?使用 AngularJs 和 Asp.Net Web API 2

AngularJS客户端路由和令牌认证与web api

从angularjs传递参数至Web API

Web API系列教材1.3 — 实战:用ASP.NET Web API和Angular.js创建单页面应用程序(下)

如何通过 AngularJS $http 从 ASP.Net Web API 2 获取访问令牌?

隧道 AngularJs 请求在外部 API 中使用 Rails