AngularJS 和 Grails 中基于角色的用户身份验证
Posted
技术标签:
【中文标题】AngularJS 和 Grails 中基于角色的用户身份验证【英文标题】:Role based User authentication in AngularJS and Grails 【发布时间】:2016-05-17 01:20:37 【问题描述】:我正在开发一个应用程序,它在 Grails 中有后端,在 Angular Js 中有前端。
任何人都可以建议最佳架构师/设计来实施基于角色的用户身份验证。例如,学生用户应该能够看到某些页面上的特定页面和内容区域,教师应该能够看到其他一些内容,但管理员应该能够看到所有页面和内容。
如图所示,在一个页面中,一个模块仅供教师使用,另一个模块仅供管理员使用,一个模块适用于所有人。
提前致谢。
【问题讨论】:
【参考方案1】:您可以使用带有 Spring Security Rest 的 Spring Security Core 通过 Angular JS 的 Ajax 调用进行身份验证。
【讨论】:
我们在几个项目的生产环境中使用了这种方法:它很有效。 对我来说,这是最好的选择 :) 你有它的编码例子吗?【参考方案2】:简而言之,您可以像这样使用$routeProvider
的resolve
属性:
module.config(["$routeProvider", "AuthorizationsService",
function($routeProvider, AuthorizationsService)
$routeProvider
.when("/home",
templateUrl: '/home.html',
controller: 'homeController',
resolve:
access: // call a authorization service
)
.when("/student",
templateUrl: '/admin.html',
controller: 'adminController',
resolve:
access: // call a authorization service
)
.otherwise(
redirectTo: "/home"
);
你需要创建一个工厂来解决或拒绝用户(这将完成所有繁重的工作)
module.factory("AuthorizationsService", ["$q",
function($q)
var checkPermission = function
// check and set the permissions from http service
// return a promise
;
return
checkPermission: checkPermission
]);
这个article 有更广泛的解释。 您可能还会发现这个SO article 很有用
【讨论】:
以上是关于AngularJS 和 Grails 中基于角色的用户身份验证的主要内容,如果未能解决你的问题,请参考以下文章
基于 SAML 响应在 Grails 中分配 Spring 安全角色
如何在 AngularJS 和 FireBase 中进行简单的基于角色的授权?