¿Qué flujo usar?
Cómo hemos visto anteriormente, existen diferentes flujos (grant types) para poder utilizar, a continuación, intentaremos detallar cuál sería el flujo correcto para cada situación y qué tiene cada uno.
Grant Type | ¿Requiere frontend? | ¿Requiere backend? | ¿Interactua el usuario? | ¿Requiere client secret | ¿Tiene refresh token? |
Client Credentials | No | Sí | No | Sí | No |
Resource Owner | Sí | Sí | Sí | Sí | Sí |
Authorization Code | Sí | Sí | Sí | Sí | Sí |
Implicit Grant | Sí | No | Sí | No | No |
Teniendo en cuenta la tabla anterior y las características de cada grant type podríamos plantear el siguiente diagrama de decisión para ayudar a la tome de decisión de qué método sería el más indicado para exponer una API según el tipo de aplicación consumidora. No obstante, el diagrama es orientativo, no siempre será necesario seguir tal cual el diagrama de decisión ya que habrá casos que habrá que estudiarlos individuales para ver cual opción sería la mejor.