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