Попытка отредактировать ответ JSON для возврата токена аутентификации при использовании приложения devise on rails - PullRequest
0 голосов
/ 17 октября 2011

У меня есть приложение rails, которое использует Devise для аутентификации и прекрасно работает в браузере. Я хочу настроить его так, чтобы он взаимодействовал с приложением Android, которое я создаю. Я пытаюсь переопределить стандартный ответ JSON, чтобы он возвращал маркер аутентификации, который мне нужен для входа.

Эта проблема, кажется, решена в этом вопросе, и я пытаюсь ее адаптировать. С помощью токенов Devise для входа это встроено?

Я указал следующий конфиг / инициализаторы / devise.rb:

config.token_authentication_key = :auth_token

Я изменил свой файл маршрутов, чтобы он выглядел так: devise_for: менеджеры,: контроллеры => {: сеансы => "Менеджеры / сеансы"}

А потом я создал файл session_controller.rb со следующим:

class Managers::SessionsController < Devise::SessionsController
 def create
   resource = warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#new")
   set_flash_message(:notice, :signed_in) if is_navigational_format?
   sign_in(resource_name, resource)

respond_to do |format|
  format.html do
    respond_with resource, :location => redirect_location(resource_name, resource)
  end
  format.json do
    render :json => { :response => 'ok', :auth_token => current_user.authentication_token }.to_json, :status => :ok
  end
end
end
end 

Однако, когда я пытаюсь запустить приложение, я получаю следующую ошибку:

Ошибка маршрутизации неинициализированная константа менеджеров

Что вызывает эту ошибку? Любые предложения о том, как исправить это, чтобы я все еще мог войти через JSON?

Заранее спасибо за помощь!

Antony

1 Ответ

0 голосов
/ 28 ноября 2011

это сработало для меня.

мои маршруты

devise_for :users , :controllers => {:sessions => 'sessions'}

и затем в session_controller.rb

 class SessionsController < Devise::SessionsController

Не забудьте инициализировать свой токен или сбросить его в какой-то момент, если вы хотите иметь уникальный токен для сеанса (current_user.reset_authentication_token!)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...