我一直在寻找保护我的RESTful API的方法。这似乎很简单,但实际上并不是那么简单。首先,我正在编写一个连接到Play Framework服务器的iOS应用程序。这与Google、Facebook、Twitter或LinkedIn没有任何关系(令人震惊的是)。哦,而且我的当前计划不需要自定义应用程序使用我的API,只是暂时使用我的应用程序。
基本认证
看起来简单的方法是,在/auth方法中使用基本的用户名/密码管理一个cookie会话。这可能会引起一些人的不满,因为它过于简单或者有弱点,但大多数情况下,它可以快速验证身份信息并将其转移到一个会话密钥中。我的最初设置是每天过期会话,但这导致iOS应用程序每天强制登录,证明这是一个烦恼。
OAuth
我在一个iOS论坛上发布了一个问题,并收到了关于OAuth的简单指导。我的OAuth研究开始了,但是他妈的复杂,似乎没有任何服务器端示例...只有很多人抱怨它有多么令人沮丧。所有客户端示例都显示连接到Google、Facebook、Twitter和LinkedIn。太棒了!
在观看Eran Hammer关于OAuth1和OAuth2的愤怒之后,继续下去似乎是徒劳无功的,而他的OZ想法(看起来真的很干净)只在node.js的早期阶段。
问题
那么,我对广大StackOverflow社区的问题是......你如何保护你的REST API?