Estoy tratando de utilizar la joya de Rest-client para realizar algunas tareas pequeñas para mi aplicación que utiliza Authlogic para autenticar usuarios. Desde el API del Resto-cliente, veo que uno puede publicar los datos necesarios para el proceso de inicio de sesión como esto:Inicio de sesión de cliente de cliente con authlogic
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
Mirando mi log de desarrollo, veo que la aplicación ha iniciado sesión en mí y me redirecciona correctamente a la página privada del usuario. Sin embargo, cuando el entonces traté de 'recarga' la página privada,
RestClient.get 'http://127.0.0.1:3000/users/1'
soy llevado a la página de inicio de sesión de nuevo, como si no hubiera iniciado la sesión. Así que me preguntaba si esto tiene que ver con algo llamado la sesión o las cookies?
He utilizado cURL para reproducir este escenario con éxito, donde uso el interruptor '-c cookie.txt' para guardar información sobre mi sesión ya iniciada, y uso el interruptor '-b cookie.txt' para cada llamada decirle al servidor remoto acerca de mi autenticidad. Puedo entender este concepto como un sello en tu muñeca cuando vas a un parque temático o a un bar donde saben que pagaste. Pero no encuentro mención de tal mecanismo en RestClient. Cualquier ayuda sería genial para resolver esto. Tampoco me molesta probar otros clientes http.
Saludos
Gracias Josh! Lo investigaré ahora. Ahora, me preocupa la palabra 'Single' en la API, ¿eso significa que no puedo volver a usarla para iniciar sesión? ¿O cambia cada vez que lo uso? –
@Nik solo significa que debe proporcionarlo en cada solicitud. Entonces, en lugar de simular un inicio de sesión y tratar de pasar las cookies, simplemente incluiría el token. No cambia automáticamente Piense en ello como una clave API. –
Eso suena genial, exactamente lo que realmente quería. Utilizo Authlogic con los rieles de Ryan Bates como tutorial, que no cubre SingleAccesstoken. Mi User.rb se parece a esto create_table "users",: force => true do | t | t.string "nombre de usuario" t.string "e-mail" t.string "crypted_password" t.string "password_salt" t.string "persistence_token" t.datetime "created_at" t.datetime "updated_at" t.integer "person_id" t.string "perishable_token",: default => "",: null => false end ¿Cómo puedo obtener la funcionalidad de token de acceso único? Solo una migración? –