我一直在寻找一种方法来保护我的 RESTful API。这看起来很简单,但似乎没有那么简单。首先,我正在编写一个连接到 Play Framework 服务器的 iOS 应用程序。这些都与 Google、Facebook、Twitter 或 LinkedIn 没有任何关系(我知道这很令人震惊)。哦,我目前的计划不需要自定义应用程序来使用我的 API,它暂时只是我的应用程序。
基本认证
看起来很简单的是一个基本的用户/传递一个 /auth 方法来管理一个 cookie 会话。这可能会引起一些抱怨太简单或太弱,但大多数情况下它将身份转移到快速验证的会话密钥。我最初的设置是每天使会话过期,但这导致 iOS 应用程序每天强制登录被证明是一件烦人的事情。
身份验证
我在 iOS 板上发布了一个问题,并收到了一个直截了当的 OAuth 指示。我对 OAuth 的研究开始了,但天哪,这太复杂了,而且似乎没有任何服务器端示例……只是很多人抱怨它是多么令人沮丧。所有客户端示例都显示连接到 Google、Facebook、Twitter 和 LinkedIn。哦,乔伊!
在看了 Eran Hammer 对 OAuth1 和 OAuth2 的吐槽之后,继续下去似乎没有结果,他的 OZ 想法(看起来很干净)在 node.js 中还只是处于早期阶段。
问题
所以,我向广大 StackOverflow 社区提出的问题是……您如何保护您的 REST API?