Тестирование рельсов разрабатывает выход в 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.