2015-03-03 25 views
5

Jak mogę uwierzytelnić moją aplikację Ruby w Rails przy użyciu cURL z terminala przy użyciu Devise?Wymyślić uwierzytelnianie przy użyciu cURL

Staram:

curl --user email:password http://domain.bla/api/auth/sign_in 

I odpowiada:

strony, czego szukasz nie istnieje.

Odpowiedz

3

Działa to dla mnie:

curl -XPOST -v -H 'Content-Type: application/json' http://domain/api/v1/auth/sign_in -d '{"email": "[email protected]", "password": "password" } 

Więc wrócę odpowiedzi (coś jak poniżej, tylko ważna część):

< access-token: lW1c60hYkRwAinzUqgLfsQ 
< token-type: Bearer 
< client: W_xCQuggzNOVeCnNZbjKFw 
< expiry: 1426610121 
< uid: [email protected] 

Wtedy mogę zatwierdzić tokena, za pomocą klient i token poprzednio otrzymane z powyższego żądania, robię to tak:

curl -XGET -v -H 'Content-Type: application/json' -H 'access-token: lW1c60hYkRwAinzUqgLfsQ' -H 'client: W_xCQuggzNOVeCnNZbjKFw' -H "uid: [email protected]" http://domain/api/v1/auth/validate_token 

Rezultat:

{"success":true,"data":{"id":3,"provider":"email","uid":"[email protected]","firstname":null,"lastname":null,"email":"[email protected]"}} 
+0

Możesz teraz podać przykład metody put? – donzee

+0

Hej, przepraszam, ale to nie działa dla mnie. Zawsze mam kod statusu 401, dlaczego? –

3

znalazłem że etap logowania trzeba było zawinięte w user słowniku, a mianowicie:

curl -X POST -v -H 'Content-Type: application/json' \ 
    http://somehost.com/users/sign_in -d \ 
    '{"user" : {"email": "[email protected]", "password": "OpenSecret" }}' 

To Devise 3.5.4.

Powiązane problemy