Pergunta

Estou tentando usar o GEM de Rest-Client para realizar algumas pequenas tarefas para o meu aplicativo que usa o Authlogic para autenticar usuários. Da API do Rest-Client, vejo que se pode postar dados necessários para o processo de login como este:

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

Olhando para o meu registro de desenvolvimento, vejo que o aplicativo está conectado a mim e me redirecionou corretamente para a página privada do usuário. No entanto, quando tentei 'recarregar' a página particular,

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

Fui trazido de volta à página de login novamente, como se eu não tivesse logado. Então, eu estava me perguntando se isso tem a ver com algo chamado sessão ou cookies?

Eu usei o Curl para reproduzir esse cenário com sucesso, onde uso o switch '-c cookie.txt' para salvar informações sobre que eu já fiz login e uso o switch '-b cookie.txt' para cada chamada para dizer ao controle remoto servidor sobre minha autenticação. Eu posso entender esse conceito de como um selo no seu pulso ao entrar em um parque temático ou um bar onde eles sabem que você pagou. Mas não encontro mencionar esse mecanismo em Restclient. Qualquer ajuda seria ótima para resolver isso. Também não me importo de experimentar outros clientes HTTP.

Cumprimentos

Foi útil?

Solução

Se você usar o Authlogic, pode estar usando o token de uso único em vez de usuário/passagem. O token de uso único é especificamente para chamadas de API, como o que parece que você está fazendo aqui.

Ver: Os rdocs aqui

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top