身份验证& AngularJS中的授权

时间:2016-04-09 21:55:57

标签: asp.net angularjs authentication asp.net-web-api authorization

我是一名ASP.NET MVC开发人员,最近我开始学习AngularJS,因为它似乎是一种更现代的技术。

但是,在AngularJS中进行身份验证和授权时,我会想到一些并发症。特别是,AngularJS以ASP.NET Web API作为后端。

  1. 在认证并从api获取令牌后,我会想象使用Angularjs将令牌存储在cookie中。因此任何进一步的请求都将包括令牌。假设由于某种原因,令牌到期,对api的下一个angularjs请求将失败并且未经授权。但是,在客户端,angular认为它已经过身份验证(cookie),并将继续在所有请求中使用该无效令牌。我可以想到一个解决方案,即检查每个请求的“未授权”响应,如果是这种情况,则重定向到登录。但我可能会因为这种做法而被枪杀。

  2. 在ASP.NET MVC中,保护某个页面/资源就像添加[Authorize]一样简单。但在角度方面,似乎非常复杂。我如何保护许多页面再次未经验证?我是否必须为每条路线设置和拦截等?

  3. 同样适用于授权,如果经过身份验证的用户尝试访问管理面板或管理面板的某些部分,该怎么办?如果通过直接URL访问,我如何重定向到未经授权的页面。

1 个答案:

答案 0 :(得分:0)

这不是一个真正的答案,但我和你在同一条船上。我已经构建了一些基本的Angular页面和小型SPA应用程序,但现在我尝试将它全部绑定到使用.Net Identity的MVC应用程序中。令人惊讶的是,关于这个话题并没有多少。我确实遇到了一个很好的例子,但它是.Net Core和MVC 6,我还没准备好进入。这值得关注,可能会给你一些想法。

http://stephenwalther.com/archive/2015/01/29/asp-net-5-and-angularjs-part-6-security

几天前,我看到了这个视频,而且大部分内容似乎都解决了这个问题。到目前为止,我唯一发现的MVC 5,Angular和一些.Net授权。看看它是否给你任何想法。我还没有机会实现它,但我希望在接下来的几天内开始这样做。如果您在此处学习或发现任何内容。

https://www.youtube.com/watch?v=f67PFtrldGQ&nohtml5=False