我使用以下示例将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模板。任何指针都表示赞赏!
答案 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链接到的要点)。