Пример аутентификации пользователя в Rails 3 с использованием ответов Devise, OmniAuth, Mongoid и JSON - PullRequest
9 голосов
/ 24 декабря 2010

Я интегрировал Devise и OmniAuth с моей установкой Mongoid ORM, используя следующие примеры:

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

Мой клиентский код в основном JavaScript (ExtJS) и использует JSON для всей коммуникации. Я не использую шаблоны Rails. Я ищу, чтобы построить модель аутентификации с несколькими провайдерами, в основном используя user / pass, Facebook и Twitter. Я испытываю затруднения при составлении полного потока аутентификации пользователя относительно моего стека приложений.

Я ищу пример, который использует ответы JSON на стандартные действия аутентификации вместо перенаправлений и обеспечивает интеграцию с OmniAuth, который использует Mongoid. В дополнение к приведенным выше примерам я прошел Railscasts Райана Бейтса на Devise и OmniAuth. Каждый пример, который я до сих пор прорабатывал, был либо ActiveRecord, либо ориентированным на шаблон Rails. Любые указатели приветствуются!

Ответы [ 2 ]

4 голосов
/ 23 апреля 2011

Это (https://github.com/fertapric/rails3-mongoid-devise-omniauth) - хороший пример приложения для настройки с рельсами 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

Надеюсь, это поможет

0 голосов
/ 27 июня 2011

Я бы посоветовал вам использовать собственный механизм аутентификации, используя Rails 3.1 ActiveModel :: SecurePassword вместо Devise. Таким образом, вы получите более чистое решение, чем попытка настроить Devise для предоставления ответов JSON.

Если вы не можете использовать Rails 3.1, я бы по-прежнему предлагал вам использовать свой собственный метод вместо того, чтобы переопределять внутренний метод Devise (суть которого связана с Nesbitt).

...