在AngularJS SPA中推荐使用自有和外部(Google,FB …)配置文件的
我正在开发一个
Asp.net MVC Web API AngularJS SPA.我想有几种类型的注册/身份验证:
>自己的个人资料提供者 可能的情况 >因为我有一个SPA,如果我可以把我的用户保留在我的页面上,那么外部(或内部的)会发生的话,这是最好的.我会显示一个包含特定内容的模态图层(甚至可能在一个iframe中).这可以做吗在线例子? 问题 >您在SPA中做了类似的情况,还是建议如何做?
我只能评论自己的经验,也许这是有帮助的.我们使用相同的堆栈,Asp.net MVC Web API AngularJS.我们使用服务器端MVC进行身份验证(Microsoft.AspNet.Identity),因为在这个阶段我们不会公开一个公共API,唯一的API消费者将会是我们的SPA,这样做的效果最好.
这也使我们能够在服务器上设置一个UserContext Angular服务,登录后可以通过整个Angular应用程序进行共享,Google Doubleclick Manager在ng-conf presentation中可以看到这种方法的一些好处.由于Web Api支持Asp.Net身份,认证和授权在MVC和Web Api之间无缝工作. 总结主要利弊: 优点: >非常容易实施. 缺点: >由于浏览器不将URL的部分哈希#发送到服务器,所以返回的URL将永远是您的SPA的根目录.例如.假设您的SPA根是/应用程序,并且您在未通过身份验证时尝试访问/ app#/ client,则将被重定向到登录页面,但是返回URL将是/ app而不是/ app#/ client服务器无法知道URL的哈希部分,因为浏览器永远不会发送. 所以简而言之,我们用来引导我们的SPA的MVC视图使用[Authorize]以及我们的Web Api方法进行保护.在MVC视图中,我们还使用Razor初始化我们的UserContext Angular服务,以注入我们要公开的任何用户属性.一旦通过单独的剃刀视图加载SPA,其他所有内容都将通过Angular进行处理. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |