针对Grails后端的PhoneGap身份验证模式

时间:2013-09-26 18:00:37

标签: javascript ajax angularjs grails cordova

我正在开发Grails的后端服务,该服务应该同时支持Web应用程序和移动应用程序。

正在使用AngularJS开发前端,移动应用程序将使用相同的AngularJS代码库与PhoneGap一起使用。

现在,我正在寻找一种正确的方法来实现Grails后端的身份验证,该后端适用于Web应用程序和移动应用程序。

三个想法:

1)在LocalStorage中存储用户名和密码,并在每次请求时在后端验证用户

2)使用基于cookie的身份验证(我应该在PhoneGap中启用cookie很棘手 从AJAX响应中提取并附加在AJAX请求中)

3)开发一个自定义协议,为后端的每个会话生成一个令牌,并将其存储在LocalStorage中。会话令牌将在每个请求中发送到后端。

4)使用私钥/公钥机制(类似于Amazon AWS)对每个请求进行签名。即使在这种情况下,后端也必须验证每个请求的签名的正确性(没有会话概念)。

我不太相信LocalStorage,但我没有其他想法,我找不到任何例子(其他后端和前端技术的示例也会有所帮助)。

您可以假设后端将在HTTPS上运行。

1 个答案:

答案 0 :(得分:1)

我会去第三个,有一些补充:

  1. 首次连接设备时,您会以某种方式(用户/密码或其他)对用户进行身份验证。然后,您将持久性令牌发送到设备,并将其保存到LocalStorage。
  2. 对于每个后续会话,在打开客户端时,会为持久性会话令牌交换持久性令牌(根据上下文,您需要多少短暂时间)。
  3. 这与您提供的内容类似,但降低了中间人和重播攻击的风险。

    希望这有帮助!