Web应用程序充当Restfull应用程序的方法

时间:2015-12-18 12:20:48

标签: java angularjs rest spring-mvc spring-security

我们正在尝试开发一个Web应用程序,其中控制器(Servlet)应该充当服务器,最初浏览器将充当客户端,然后将来可能会有第三方应用程序将消耗来自相同控制器的服务。

所有控制器都将返回JSON数据,而角度JS将使用它并在浏览器中显示Web应用程序的内容,对于第三方应用程序,他们将直接调用其他服务。

我的问题如下

  • 如果我正在开发Restful服务,那么我应该不使用HTTP会话 即我的控制器应该是完全无状态的

  • 如果我的应用程序应该是无状态的,那么我将如何克服这个问题 HTTP会话对象的不足(我如何携带用户特定的 不同屏幕可能需要的数据)

  • 如何为第三方处理身份验证 应用程序,用户是否应在每个请求中提供凭据?

1 个答案:

答案 0 :(得分:2)

1)是的,您需要一种基于令牌的身份验证,换句话说,您必须为每个请求设置标头。 Angular ngResource是你的朋友。例如:

i.   Login (Basic Authentication)
ii.  Get Token from Server and store it e.g. in Cookies 
iii. Set header with each request (token: whatever)
iv.  If token is valid, server answers with data or enables further interaction

2)用户特定数据将存储在$ scope(Angular Term)中,ist就像是模型的数据和操作容器。如果您愿意,可以在本地保留它。或者将其发送到服务器(使用有效的令牌将其存储在那里)

3)登录,获取令牌,进行通信。必须在服务器上正确设置用户权限和公司。