我已经找到了很多学术上的答案,但我希望能从实践者那里得到一个答案。
背景
我想创建一个基于Java的RESTful API,使用Grails框架为各种移动客户端(iOS和Android)提供访问受保护资源的服务。我需要在某些请求上进行身份验证,并且我已经设置了SSL加密(因此所有请求都通过https进行)。我的Web API最终将作为服务公开给其他Web应用程序。
问题
人们推荐哪种身份验证方法用于移动设备以及最终要被其他Web应用程序使用的Web服务?
以下是我认为可供选择的选项。您能告诉我每个选项适合什么情况吗?
- 我可以使用HTTP基本身份验证
- 我可以使用HTTP摘要身份验证
- 我可以实现OAuth身份验证(1.0或2.0)?
- 我可以将凭据作为请求参数传递
- 我可以使用上述身份验证方法,然后传递委托/令牌进行身份验证
- 我可以实现自己的自定义HTTP身份验证标头
- 我可以使用cookie并在每个请求中将其传递给服务器
- 其他...?
需求
如果您有任何倾向,请告诉我为什么选择该方法。更好的是,如果您在Grails中实现此操作,我非常感兴趣。
我已经知道...
我已经阅读了这里和Richardson和Ruby的书《Restful Web Services》中的优秀答案。