2011-03-02 2 views
0

Я строю API JSON поверх разработки, чтобы иметь возможность общаться с мобильных устройств.Проблема с построением API поверх Devise

Пока все хорошо, я могу создать учетную запись пользователя, чтобы получить auth_token. Но когда я пытаюсь выполнить запрос PUT, у меня возникают некоторые проблемы, например, действие обновления для пользователя. Поведение действительно неустойчиво, и я не могу понять, что не так.

curl -i -H "Accept: application/json" 'http://localhost:3000/users' -X PUT -d 'auth_token=A830ALUv7ztTdSfl3qxFgi13BJpEf6VzNYe4yk8rEhVxbYYlOc0YMtTGMxkz&user[name]=plop' 

Возвращает

HTTP/1.1 401 Unauthorized 
Connection: close 
Date: Wed, 02 Mar 2011 06:41:29 GMT 
Content-Type: application/json; charset=utf-8 
Cache-Control: no-cache 
X-UA-Compatible: IE=Edge 
X-Runtime: 0.157513 
Transfer-Encoding: chunked 

{"error":"You need to sign in or sign up before continuing."} 

На бревнах на сервере я получаю это .... Действительно странно.

Started PUT "/users" for 127.0.0.1 at 2011-03-01 22:41:29 -0800 
    Processing by Users::RegistrationsController#update as JSON 
    Parameters: {"auth_token"=>"A830ALUv7ztTdSfl3qxFgi13BJpEf6VzNYe4yk8rEhVxbYYlOc0YMtTGMxkz", "user"=>{"name"=>"plop"}} 
Completed in 1ms 

В то время как, если я могу изменить только имя почтового значения от пользователя к пользователям формировать пример, запрос работает

HTTP/1.1 200 OK 
Connection: close 
Date: Wed, 02 Mar 2011 06:43:30 GMT 
Content-Type: application/json; charset=utf-8 
ETag: "5e1311709931861e469ce2c8a3b2d0e6" 
Cache-Control: max-age=0, private, must-revalidate 
X-UA-Compatible: IE=Edge 
Set-Cookie: _u_session=BAh7CEkiGXdhcmRlbi51c2VyLnVzZXIua2V5BjoGRVRbCEkiCVVzZXIGOwBGWwZvOhNCU09OOjpPYmplY3RJZAY6CkBkYXRhWxFpUGGaQG%2FaX1pAfhpAaRpAexpAGkAaQ1JIiIkMmEkMTAkMDVBeDczV29UdVFEZHQxZ1JjN0NXdQY7AFRJjW9uRGlzcGF0Y2g6OkZsYXNoOjpGbGFzaEhhc2h7BjoLbm90aWNlSSIrWW91IHVwZGF0ZWQgeW91ciBhY2NvdW50IHN1Y2Nlc3NmdWxseS4GOwBUBjoKQHVzZWRvOghTZXQGOgpAaGFzaHsASSIPc2Vzc2lvbl9pZAY7AEYiJTcyNmIyZjJiODZhOTBiNjUwZDlhZmIwMzA5MTRkMTlm--0e15953fd7edecb0e08255349c4e55f1eddc8d81; path=/; HttpOnly 
X-Runtime: 0.162436 
Transfer-Encoding: chunked 

{"redirect":"/","status":"ok"} 

Я точен, что, даже без моего кода (для API), я могу Не выполняйте этот запрос !!!!

Благодарим за помощь!

ответ

1

Я не верю, что Devise обрабатывает вызовы JSON, есть open issue on github, который запланирован для версии 1.3 для решения этой проблемы.

Смежные вопросы