Quando uma API exige que um cliente se autentique, eu vi dois cenários diferentes usados e fico imaginando qual caso devo usar para a minha situação.
Exemplo 1. Uma API é oferecida por uma empresa para permitir que terceiros se autentiquem com um token e um segredo usando HTTP Basic.
Exemplo 2. Uma API aceita um nome de usuário e senha via HTTP Basic para autenticar um usuário final. Geralmente, eles recebem um token de volta para solicitações futuras.
Minha configuração: terei uma API JSON usada como back-end para um aplicativo móvel e da web. Parece uma boa prática para o aplicativo móvel e da Web enviar um token e um segredo para que apenas esses dois aplicativos possam acessar a API bloqueando qualquer outro terceiro.
Mas o aplicativo móvel e da web permite que os usuários efetuem login e enviem postagens, visualizem seus dados etc. Então, eu gostaria que eles acessassem via HTTP Basic, bem como em cada solicitação.
De alguma forma, uso uma combinação desses dois métodos ou apenas envio as credenciais do usuário final (nome de usuário e token) em cada solicitação? Se eu enviar apenas as credenciais do usuário final, eu as armazeno em um cookie no cliente?