我们正在尝试开发一个Web应用程序,其中控制器(Servlet)应该充当服务器,最初浏览器将充当客户端,然后将来可能会有第三方应用程序将消耗来自相同控制器的服务。
所有控制器都将返回JSON数据,而角度JS将使用它并在浏览器中显示Web应用程序的内容,对于第三方应用程序,他们将直接调用其他服务。
我的问题如下
如果我正在开发Restful服务,那么我应该不使用HTTP会话 即我的控制器应该是完全无状态的
如果我的应用程序应该是无状态的,那么我将如何克服这个问题 HTTP会话对象的不足(我如何携带用户特定的 不同屏幕可能需要的数据)
如何为第三方处理身份验证 应用程序,用户是否应在每个请求中提供凭据?
答案 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)登录,获取令牌,进行通信。必须在服务器上正确设置用户权限和公司。