Тестирование рельсов разрабатывает выход в API с помощью curl

Я пытаюсь проверить мой контроллер API с запросами через curl.

Запрос на вход (успешно)

curl -v -H 'Content-Type: application/json' -H 'Accept: application/json' -X POST http://localhost:3000/api/v1/sessions -d "{\"user\":{\"email\":\"user@example.com\",\"password\":\"password\"}}"

Я свободно следую этому уроку, но делаю изменения, так как Devise больше не поддерживает токены аутентификации. Я использую гем https://github.com/gonzalo-bulnes/simple_token_authentication для токенов. Мои запросы на вход в систему выполнены успешно и генерируют токены. Вот мой контроллер API / V1/ сессий:

class Api::V1::SessionsController < Devise::SessionsController
    respond_to :json

    def create
        warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#failure")
        render :status => 200,
                :json => { :success => true,
                      :info => "Logged in",
                      :data => { :auth_token => current_user.authentication_token } }
    end

    def destroy
        warden.authenticate!(:scope => resource_name, :recall => "#{controller_path}#failure")
        current_user.update_column(:authentication_token, nil)
        render :status => 200,
               :json => { :success => true,
                          :info => "Logged out",
                          :data => {} }
    end


    def failure
        render :status => 401,
                :json => { :success => false,
                :info => "Login Failed",
                :data => {} }
    end
end

Я пытаюсь проверить выход из системы, но не могу понять, как заставить запрос работать с curl. Учебник имеет это:

curl -v -H 'Content-Type: application/json' -H 'Accept: application/json' -X DELETE http://localhost:3000/api/v1/sessions/\?auth_token\=JRYodzXgrLsk157ioYHf

Это возвращается HTTP/1.1 401 Unauthorized, и я думаю, что это может быть потому, что этот запрос передает auth_token контроллеру, ожидая, что Devise знает, как с этим справиться? Любая помощь здесь высоко ценится.

РЕДАКТИРОВАТЬ Я также заметил, что мой сервер говорит Can't verify CSRF token authenticity,

EDIT2 решил проблему CSRF с skip_before_filter :verify_authenticity_token но все равно получаю 401.

0 ответов

Другие вопросы по тегам