我使用rails服务器实现了Web服务。 服务器使用rails默认认证方案进行用户登录。
现在,我正在为服务开发本机移动应用程序,应用程序正在使用json请求和响应与服务器进行通信。
由于本机移动应用程序是基于Safari的,因此身份验证工作正常,因为会话ID可以设置为cookie但我担心它存在CSRF攻击的风险,因为rails只使用CSRF处理针对html请求的此类攻击令牌。
我的问题如下: - 你知道解决这个问题的方法吗? - 我应该为移动应用程序实现不同的控制器,因为它更像是封闭(私有)API吗?如果是这样,进行身份验证的标准方法是什么?
非常感谢
答案 0 :(得分:0)
通过HTTPS进行基本的HTTP身份验证应该可以解决问题。
客户端代码正常执行json API请求,并使用基本凭据设置Authentication
标头(假设客户端应用已登录,并且可以访问用户名/密码)。
这基本上是纯文本,但如果使用HTTPS传输,则可以避免窃听。
Rails有一些用于检查用户名/密码的内置助手。
或者,双腿OAuth也可以做到这一点,但实施起来更复杂。