Quiero implementar una API de inserción similar a la API de Garmin Connect . esta API permite a los clientes obtener los datos de los usuarios de garmin, ya que garmin enviará a los clientes los archivos del usuario cada vez que se creen.
tenemos tres actores (el cliente [la aplicación que desea conectarse a la API], la API de Connect (el servidor api) y el usuario).
esa API funciona de la siguiente manera: (usando OAUTH1.0)
1 - el cliente tiene una clave y un secreto del consumidor, primero firma la solicitud y envía el secreto del consumidor a la api.
2- El servidor api responde a la solicitud mediante un token y un secreto de solicitud no autorizados.
3- El cliente envía de nuevo al servidor api una solicitud firmada por el token de solicitud.
4- El servidor api permite que el usuario inicie sesión y seleccione si desea aceptar la conexión o no. Cuando se acuerda, el servidor api envía un token de verificación al url de devolución de llamada, especificado por el cliente.
5- El cliente envía de vuelta al servidor de la API el token de verificación.
6- El servidor api devuelve la clave de acceso y el secreto, que el cliente los almacenará para el usuario (por usuario).
7- después, el servidor api enviará los archivos (push) a la url push del cliente, como una solicitud multiparte junto con el secreto de acceso.
y al igual que el cliente sabe quién es el usuario al que pertenece el archivo.
quiero implementar algo similar a esto, con un api push, pero me gustaría usar oauth2 en lugar de oauth1. El problema que tengo principalmente está en el token de acceso de larga duración que se proporciona en el último paso, y sin firma ni autenticación, tampoco puedo usar un mecanismo de actualización del token.
¿Cómo puedo hacerlo? ¿Hay algún comentario al respecto?