我正在开发Grails的后端服务,该服务应该同时支持Web应用程序和移动应用程序。
正在使用AngularJS开发前端,移动应用程序将使用相同的AngularJS代码库与PhoneGap一起使用。
现在,我正在寻找一种正确的方法来实现Grails后端的身份验证,该后端适用于Web应用程序和移动应用程序。
三个想法:
1)在LocalStorage中存储用户名和密码,并在每次请求时在后端验证用户
2)使用基于cookie的身份验证(我应该在PhoneGap中启用cookie很棘手 从AJAX响应中提取并附加在AJAX请求中)
3)开发一个自定义协议,为后端的每个会话生成一个令牌,并将其存储在LocalStorage中。会话令牌将在每个请求中发送到后端。
4)使用私钥/公钥机制(类似于Amazon AWS)对每个请求进行签名。即使在这种情况下,后端也必须验证每个请求的签名的正确性(没有会话概念)。
我不太相信LocalStorage,但我没有其他想法,我找不到任何例子(其他后端和前端技术的示例也会有所帮助)。
您可以假设后端将在HTTPS上运行。
答案 0 :(得分:1)
我会去第三个,有一些补充:
这与您提供的内容类似,但降低了中间人和重播攻击的风险。
希望这有帮助!