2015-03-03 10 views
5

Come posso autenticare la mia applicazione Ruby on Rails usando cURL dal terminale usando Devise?Devise autenticazione usando cURL

Sto cercando:

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

E risponde:

La pagina che stavi cercando non esiste.

risposta

3

questo funziona per me:

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

Così torno la risposta (qualcosa come qui di seguito, solo una parte importante):

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

allora posso validare il token, utilizzando il client e token precedentemente ottenuti dalla suddetta richiesta, lo faccio in questo modo:

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 

Il risultato:

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

Ora puoi darmi un esempio per il metodo put? – donzee

+0

Ehi, scusa ma non funziona per me. Ho sempre un codice di stato 401, perché? –

3

ho trovato che la fase di login necessari per essere avvolto in un user dizionario, vale a dire:

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

Questo è Devise 3.5.4.

Problemi correlati