2015-07-21 51 views
0

场景:Autentication和授权angularjs消费时多REST的后端

  • 多REST的后端,为前。使用泽西开发,并单独部署,例如在码头集装箱。
  • 单个和单独部署的AngularJS Web应用程序消耗每个REST后端。

现在,我想要的是添加身份验证和授权,以便用户可以使用html格式登录。

现在,我唯一确定的是我不需要OAuth,因为没有第三方需要访问REST后端,而只需要AngularJS应用程序。

我已经研究了Apache Shiro,Spring Security和其他框架,但是我没有了解如何在身份验证和授权方面整合前端和后端。

你们中的任何一个人是否有任何如何做到这一点的例子,而不会让我的代码与特定安全方面混淆?

可能的/合理的解决方案?

如果我实现了,只是用于验证和授权部署一个独立且非常薄REST的服务,说与POST端点https://.../authenticate,它返回一个错误信息或与有关用户的详细信息的JSON响应,以沿唯一会话令牌,那么我可以在每个后续请求/响应中包含此令牌和其他必要的头文件。然后,每个REST后端可以过滤每个请求,并检查给定的头信息(使用会话令牌和角色等)是否经过身份验证和授权。

这个解决方案有什么缺点/缺陷吗?

回答

0

如果所有的后端需要基本身份验证相同的认证证书,那么你可以设置认证报头中的默认标头值,使其将用于所有http请求。

var authdata = btoa($scope.user.email + ':' + $scope.user.password); 
 

 
$http.defaults.headers.common['Authorization'] = 'Basic ' + authdata; // set default Authorization header value. 
 

 
//Call multiple backends now. The Authorization header will remain unless it is explicitly cleared.

+0

可以工作,但我真的不想使用基本身份验证,并且每次都重新发送用户名/密码。 – Moni