OAuth

Open Authorization (OAuth) es un estándar abierto que permite flujos simples de autorización para sitios web o aplicaciones informáticas. Se trata de un protocolo propuesto por Blaine Cook y Chris Messina, que permite autorización segura de una API de modo estándar y simple para aplicaciones de escritorio, móviles y web.

OAuth permite a un usuario del sitio A compartir su información en el sitio A (proveedor de servicio) con el sitio B (llamado consumidor) sin compartir toda su identidad. Para desarrolladores de consumidores, OAuth es un método de interactuar con datos protegidos y publicarlos. Para desarrolladores de proveedores de servicio, OAuth proporciona a los usuarios un acceso a sus datos al mismo tiempo que protege las credenciales de su cuenta.

Flujo OAuth típico:

  1. Redireccionar  al cliente al «Authorization endpoint». En este punto es donde el usuario autoriza al cliente.
    Dependiendo de la API, se le envian los siguientes datos: client id, redirect url, scopes (permisos) que queremos autorizar.
  2. La api redirecciona a una url que nosotros le enviamos en el paso anterior, aceptando o denegando el acceso. Si nos brinda el acceso nos devuelve un código, el que deberemos usar, junto con el client secret, para obtener el access token.
  3. Utilizando este código que nos enviaron, junto con el client secret, enviamos una petición para obtener el access token.
  4. Si obtenemos el access token, podemos empezar a hacer peticiones a la API.

Recursos:
https://es.wikipedia.org/wiki/OAuth
https://www.digitalocean.com/community/tutorials/una-introduccion-a-oauth-2-es