Cuando una API requiere que un cliente se autentique en ella, he visto dos escenarios diferentes utilizados y me pregunto qué caso debería usar para mi situación.
Ejemplo 1. Una compañía ofrece una API para permitir que terceros se autentiquen con un token y un secreto utilizando HTTP Basic.
Ejemplo 2. Una API acepta un nombre de usuario y contraseña a través de HTTP Basic para autenticar a un usuario final. En general, reciben un token para futuras solicitudes.
Mi configuración: tendré una API JSON que usaré como back-end para una aplicación móvil y web. Parece una buena práctica que tanto la aplicación móvil como la web envíen un token y un secreto, por lo que solo estas dos aplicaciones pueden acceder a la API bloqueando a cualquier otro tercero.
Pero la aplicación móvil y web permite a los usuarios iniciar sesión y enviar publicaciones, ver sus datos, etc. Por lo tanto, me gustaría que también inicien sesión a través de HTTP Basic en cada solicitud.
¿De alguna manera uso una combinación de ambos métodos o solo envío las credenciales de usuario final (nombre de usuario y token) en cada solicitud? Si solo envío las credenciales de usuario final, ¿las almaceno en una cookie en el cliente?