使用Devise和Rails 3的多种身份验证方案

时间:2011-05-30 19:27:48

标签: ruby-on-rails-3 devise restful-authentication

这可能是一个常见的问题,但我在任何地方都没有看到任何完整的答案:

我有一个Rails 3应用程序正在使用Devise在网络上进行身份验证,并且工作正常。所有控制器上的所有操作都经过身份验证,路由都很安静。用户被重定向到网页以输入用户名和密码,然后可以访问资源。

现在我需要向系统添加API。大多数控制器/操作将在Web和API用户之间共享,但API用户将具有不同的身份验证方案(可能是API密钥)。

因此,如果网络用户进入

/projects/1/users

要查看网络上的用户,API用户应该转到

/api/v1/projects/1/users

在标题或参数中使用API​​Key = abcd等参数查看相同的内容以允许进行身份验证。

我知道解决方案是覆盖SessionController和路由,但无法在任何地方找到详细的答案。

1 个答案:

答案 0 :(得分:1)

您可以通过使用令牌身份验证来获得相同的结果:

http://rdoc.info/github/plataformatec/devise/master/Devise/Models/TokenAuthenticatable