Rails 3中的用户身份验证示例,使用Devise,OmniAuth,Mongoid和JSON响应

时间:2010-12-23 23:05:27

标签: ruby-on-rails json devise mongoid omniauth

我使用以下示例将Devise和OmniAuth与我的Mongoid ORM设置集成在一起:

https://github.com/plataformatec/devise/wiki/Example-Applications

我的客户端代码主要是JavaScript(ExtJS),并且依赖于JSON进行所有通信。我没有使用Rails模板。我希望构建一个多提供商身份验证模型,主要使用用户/通行证,Facebook和Twitter。我很难将完整的用户身份验证流程与我的应用程序堆栈放在一起。

我正在寻找一个使用JSON响应标准身份验证操作而不是重定向的示例,并提供与使用Mongoid的OmniAuth的集成。除了上面的例子,我还经历过Ryan Bates在Devise和OmniAuth上的Railscasts。到目前为止,我所做的每个例子都是ActiveRecord,或者是Rails模板。任何指针都表示赞赏!

2 个答案:

答案 0 :(得分:4)

这个(https://github.com/fertapric/rails3-mongoid-devise-omniauth)是一个很好的示例应用程序,用于设置rails 3,devise,omniauth和mongoid,以及一个配合它的教程这里:https://github.com/fortuity/rails3-mongoid-devise/wiki/Tutorial-(Walkthrough

然后你需要覆盖用户会话控制器,为你的应用提供正确的json响应,这里有一个很好的例子:https://gist.github.com/733647和这里:http://groups.google.com/group/plataformatec-devise/browse_thread/thread/daa3332b3c4a1b4b

希望这有帮助

答案 1 :(得分:0)

我建议你使用Rails 3.1 ActiveModel :: SecurePassword而不是使用Devise来编写自己的身份验证机制。与尝试调整Devise以提供JSON响应相比,您将获得更清晰的解决方案。

如果你不能使用Rails 3.1,我仍然建议你自己滚动而不是覆盖内部Devise方法(Nesbitt链接到的要点)。