Невозможно сделать почтовый запрос с использованием авторизации токена разработки

Кажется, я не могу отправить запрос на конечную точку моего контроллера; однако я мог бы создать пользователя и get всех пользователей, используя devise_token_auth.

Следуя их документации, я могу CRUD пользователя. Если я создам другую конечную точку в пользовательском контроллере с маршрутом post, я получаю:

Цепочка фильтров остановлена ​​как :authenticate_user! визуализировано или перенаправлено

Но get работает. Мой application.rb:

config.middleware.insert_before 0, Rack::Cors do
  allow do
    origins '*'
    resource '*',
      :headers => :any,
      :expose  => ['access-token', 'expiry', 'token-type', 'uid', 'client'],
      :methods => [:get, :post, :delete, :patch, :options]
  end
end

Пользовательский CRUD работает только с конечными точками их путей, но не с моими.

# controllers/api/v1/api_controller.rb
module Api::V1
  class ApiController < ApplicationController
    before_action :authenticate_user!
    respond_to :json
  end
end

# controllers/api/v1/users_controller.rb
module Api::V1
  class UsersController < ApiController

    def create
      render json: 'created'
    end

  end
end

# routes
scope module: 'api' do
  namespace :v1 do
    post '/users/test', to: 'users#create'    # not authenticated!
    get '/users/test', to: 'users#create'     # authenticated.. works
    # resources :users, only: [:index, :show] # no issues here
  end
end

Почтальон может post, когда я добавил заголовок, но не из браузера. Не уверен, что проблема с CORS, но я думаю, что нет. Я попробовал новый API Rails 5 и то же самое. Моя функция js выглядит так:

axios.post(`${window.apiUrl}/v1/users/test`, { headers: headerData, project: { title: 'help' } })

person Sylar    schedule 29.05.2017    source источник


Ответы (1)


Оказывается, именно так я публикую данные с помощью axios. У меня должны быть данные перед заголовками:

axios.post('url', <data-to-post>, <headers>)

Вместо этого я отправлял только params, а не headers. Проблема решена.

person Sylar    schedule 29.05.2017