Domanda

Sto cercando di usare la gemma Resto-client per fare alcuni piccoli compiti per la mia app che utilizza Authlogic per autenticare gli utenti. Da API Rest-client, vedo che si può inserire i dati necessari per il processo di log-in in questo modo:

require 'rest_client'
RestClient.post "http://127.0.0.1:3000/user_sessions", {:user_session => {:username => 'myusername', :password => 'mypassword'}}.to_json, :content_type => :json, :accept => :json

Guardando il mio log di sviluppo, vedo che l'applicazione ha effettuato l'accesso in me e mi ha reindirizzato correttamente alla pagina privata dell'utente. Tuttavia, quando ho poi cercato di 'reload' pagina privata,

RestClient.get 'http://127.0.0.1:3000/users/1'

Io sono portato di nuovo alla pagina di login di nuovo, come se non avessi loggato. Così mi chiedevo se questo ha a che fare con qualcosa chiamato la sessione o cookie?

Ho usato cURL per riprodurre questo scenario con successo, in cui io uso l'interruttore 'cookie.txt -c' per salvare le informazioni sul mio avendo già effettuato l'accesso, e utilizzare l'interruttore '-b cookie.txt' per ogni chiamata a dire al server remoto per il mio autenticato-ness. Posso capire questo concetto di come un francobollo al polso quando si va in un parco a tema o di un bar dove ti conoscono pagato. Ma non trovo menzione di un tale meccanismo in RestClient. Qualsiasi aiuto sarebbe grande per risolvere questo. Non mi dispiacerebbe provare altri client HTTP, sia.

Saluti

È stato utile?

Soluzione

Se si utilizza Authlogic, si potrebbe essere utilizzando la Single Use token invece di user / pass. L'uso singolo token è specificamente per le chiamate alle API come quello che suona come si sta facendo qui.

Si veda: I rdocs qui

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top