У меня есть API рельсов, использующий Devise. Когда вы нажимаете конечную точку POST / login, он регистрирует пользователя и предоставляет JWT. Это все работало нормально, пока я недавно не перешел на пространство имен своих контроллеров с версией. Вот как выглядит мой метод сессий # create:
def create
self.resource = warden.authenticate!(auth_options)
set_flash_message!(:notice, :signed_in)
sign_in(resource_name, resource)
yield resource if block_given?
render json: current_user
end
При выполнении запроса на вход в систему от внешнего интерфейса, вот как выглядят мои параметры:
{
user: {
email: 'john@gmail.com',
password: 'password'
}
}
Раньше это работало, но теперь, когда я мигрировал в пространство имен Api :: V1 для моего контроллера сессий, он требует, чтобы клиентский интерфейс отправлял учетные данные в: api_v1_user вместо: user.
Есть ли способ, которым я могу изменить свои сеансы # создать функцию для просмотра атрибута: user, а не: api_v1_user?
UPDATE
namespace :api do
namespace :v1 do
devise_for :users,
path: '',
path_names: {
sign_in: 'login',
sign_out: 'logout',
registration: 'signup'
},
controllers: {
sessions: 'api/v1/sessions',
registrations: 'api/v1/registrations'
}