Actualmente estoy integrando nuestro sistema, con una API externa. Estoy usando httparty para facilitar la integración.
Cuando realizo la autenticación con la API externa, se nos proporciona un JWT, ¿existe alguna práctica recomendada para almacenar este JWT para futuras solicitudes en Ruby?
Thew JWT Ruby Gem debería ser su primera opción para la implementación de Ruby. Hay algunas otras gemas. Para obtener más información sobre JWT en general, puede consultar la documentación de la gema o quizás aquí .
Con respecto a las mejores prácticas para almacenar el JWT, realmente depende de su caso de uso, pero para el suyo, parece que le gustaría usar un tipo de almacenamiento de caché temporal como Redis si su JWT tiene un tiempo de vencimiento típico. La idea es que después de la autenticación, escriba el token en un almacén temporal, que podría verse así si estuviera usando Redis.
require 'redis' my_jwt_token = call_some_api_to_get_token redis = Redis.new ( :host => 'hostname', :port => port, :password => 'password') token_expires_in_seconds = 60 * 60 # set expire 1 hour redis.set('my_jwt_token', my_jwt_token, ex: token_expires_in_seconds) my_api_client.call('some_endpoint', jwt_token: redis.get('my_jwt_token"))En mi ejemplo, asumo que tiene un objeto de cliente con un método de llamada que toma un punto final y el hash de opciones. Pero esto debería darle una idea básica de un enfoque aquí.