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:
- 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. - 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.
- Utilizando este código que nos enviaron, junto con el client secret, enviamos una petición para obtener el access token.
- 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