Autenticación con Oauth2

El método de autenticación implementado para las integraciones es OAuth2, ya que aporta importantes beneficios.

El método de autenticación implementado para las integraciones es OAuth2, ya que aporta los siguientes beneficios:

  • Esta optimizado para aplicaciones del lado del servidor.
  • El código fuente no se expone públicamente.
  • Mantiene la confidencialidad del Client Secret.

¿Qué es OAuth2?


Es un marco de autorización que permite a las aplicaciones obtener acceso limitado a cuentas de usuario en un servicio HTTP como Google, Facebook, GitHub, entre otros. 

Funciona delegando la autenticación del usuario al servicio que aloja la cuenta del usuario (Multivende) y autorizando a las aplicaciones de terceros a acceder a los datos de la cuenta del usuario seleccionando los permisos que desea otorgar.

Roles

  • Propietario del recurso - Merchant
  • Cliente - Aplicación
  • Servidor de recursos - Multivende 
  • Servidor de autorización - Multivende

Proceso de Autorización

1. El Merchant ingresa al sitio web de la aplicación y genera la solicitud de autorización a Multivende.

2. Aplicación redirecciona al Merchant a Multivende enviando por parametro en la URL:

    • "response_type" = code.
    • "client_id" = Client ID.
    • "redurect_uri" = redirect_uri ingresado previamente al crear la aplicación en Multivende.
    • "scope"= scopes ingresado previamente al crear la aplicación en Multivende.

Ejm: https://app.multivende.com/apps/authorize?response_type=code&client_id=00000000000&redurect_uir=asd&scope=read:checkouts

 

3. El Merchant selecciona los permisos (scopes) a autorizar para la aplicación. Mas detalles en el articulo Scopes.

4. Multivende genera el código de autorización y redirige al redirect_uri. Enviando:

    • code

5. Aplicación solicita el access token a Multivende por el endpoint Authenticate OAuth2 Enviando: 

    • client_id
    • client_secret
    • grant_type: ’authorization_code’
    • code

6. Multivende valida que el authorization code entregado no haya expirado y retornar el access token. Aplicación recibe:

    • token
    • expiresAt
    • refreshToken
    • refreshTokenExpiresAt
    • scopes
    • MerchantId
    • OauthClientId

    image (6)-1

 

Proceso para actualizar el token

 Para generar un nuevo token se debe solicitar el endpoint Refresh token OAuth2 enviando:

    • refresh_token: refreshToken generado en el paso anterior.
    • client_id
    • client_secret
    • grant_type: ‘refresh_token’

Retorna:

    • token
    • expiresAt
    • refreshToken
    • refreshTokenExpiresAt
    • scopes
    • MerchantId
    • OauthClientId

 

Importante

  • Cada vez que el Merchant otorgue permisos a la aplicación se genera una nueva conexión entre la aplicación y la cuenta del Merchant la cual no sustituye las conexiones anteriores. Por lo que si tu aplicación solo permite una conexión, el Merchant deberá eliminar las conexiones que no de desean usar.
  • Tiempos de caducidad
 

Caducidad

Usos

authorization code

24 horas

1 sola vez

token

6 horas

indefinido

refreshToken

48 horas

1 sola vez

 

 

 

Si tienes dudas sobre este tema contáctanos a través de api@multivende.com  y estaremos felices de ayudarte.

Equipo Integraciones API Multivende