Приложение My Rails 5 имеет администратора, который использует обычную процедуру входа в систему.Маршруты ограничены /admin
scope '/admin' do
devise_for :users, singular: :admin_user
end
Кроме того, приложение предоставляет API для мобильных устройств.API использует токен JWT для аутентификации.Для этого используется гем devise-jwt .
Я определил метод devise_for
в api / v1 следующим образом:
scope :api, module: :api do
scope :v1, module: :v1 do
devise_for :api_users,
class_name: 'User',
resource_name: 'user',
name: 'user',
path: '',
path_names: {
sign_in: 'login',
sign_out: 'logout',
registration: 'signup'
},
controllers: {
sessions: 'api/v1/sessions',
registrations: 'api/v1/registrations'
}
end
end
Через вызов JSON api/v1/login
Я могу войти.К сожалению, вероятно из-за несоответствия resource_name
токен JWT не добавляется в качестве заголовка.
Когда я изменяю параметр ресурсов devise_for
с :api_users
на :users
и комментирую /admin
scope devise_for
, он работает.
Я надеюсь, что кто-то может найти решениеЭта проблема.Уже несколько дней это вызывает у меня проблемы, и я думаю, что попробовал все возможные сопоставления и комбинации параметров namespace / scope / module в файле маршрутов.