这可能是一个常见的问题,但我在任何地方都没有看到任何完整的答案:
我有一个Rails 3应用程序正在使用Devise在网络上进行身份验证,并且工作正常。所有控制器上的所有操作都经过身份验证,路由都很安静。用户被重定向到网页以输入用户名和密码,然后可以访问资源。
现在我需要向系统添加API。大多数控制器/操作将在Web和API用户之间共享,但API用户将具有不同的身份验证方案(可能是API密钥)。
因此,如果网络用户进入
/projects/1/users
要查看网络上的用户,API用户应该转到
/api/v1/projects/1/users
在标题或参数中使用APIKey = abcd等参数查看相同的内容以允许进行身份验证。
我知道解决方案是覆盖SessionController和路由,但无法在任何地方找到详细的答案。
答案 0 :(得分:1)
您可以通过使用令牌身份验证来获得相同的结果:
http://rdoc.info/github/plataformatec/devise/master/Devise/Models/TokenAuthenticatable