Hay dos opciones para esto:
- Puro: cree un cliente de JavaScript en forma de una aplicación de página única. La aplicación interactúa directamente con la API.
- Predeterminado … con redirección: si elige la primera opción, suponiendo que está utilizando OAuth para su API, su aplicación web necesitará implementar el flujo implícito de OAuth. El inconveniente de esto es que el cliente, cuando se autentica en la API, realizará una redirección.
- Solo para aplicaciones oficiales: si no desea redirigir a sus usuarios, puede modificar el flujo de credenciales de usuario. ¿Cuál es el objetivo de este truco? asegúrese de que el token de actualización no esté expuesto al cliente. En este caso, se autentica en la API a través de su servidor y almacena el token de actualización cifrado en una cookie. El cliente utiliza el token de acceso para enviar solicitudes a la API. Cuando el token de acceso muere, le pide al servidor de aplicaciones que lo actualice. En este caso, el servidor de aplicaciones está representando o suplantando el servidor de autorización.
- Mixto: crea una aplicación web con páginas renderizadas en el servidor. La aplicación interactúa con la API a través del servidor. Nuevamente tienes dos opciones más:
- Forma fácil. implementar API y la aplicación del servidor como una sola aplicación. Compartirán sesión y podrá autenticarse como en cualquier otra aplicación. Si desea abrir su API a otros clientes, no tome este acceso directo
- La otra forma: en el punto 1.2 vimos cómo una aplicación web oficial puede suplantar a la API de autorización para evitar redireccionamientos. En este caso, está implementando la aplicación web en un contexto separado de su API. Pero el lado del servidor de la aplicación enviará todas las solicitudes a la API.
Mis elecciones son:
- Utilice 2.1 para prototipo, demostración.
- Use 1.2 para la aplicación web oficial
- Use 1.1 en otros casos
Luego seleccione sus tecnologías preferidas para implementar, mi voto es para AngularJS.
- ¿Habrá alguna vez un marco de creación de aplicaciones / sitios web de facto?
- ¿Cómo se implementan los diferentes tipos de software y aplicaciones web y cuáles son las herramientas que se utilizan?
- ¿Cuáles son las mejores prácticas para aprender tecnologías web?
- Cómo desarrollar una aplicación web con AngularJS, Django o SQL
- ¿Cuál es una buena alternativa a la Lista de tareas pendientes de Basecamp?
EDITAR
Perdón por el formato. ¡Algo salió mal con las listas numeradas!