Por exemplo, quando um usuário faz login. Agora, digamos que o usuário deseja criar um tópico no fórum, como vou saber se o usuário já está logado?
Pense nisso - deve haver um aperto de mão que informe à API "Criar fórum" que essa solicitação atual é de um usuário autenticado. Como as APIs REST normalmente são sem estado, o estado deve ser persistido algum lugar . Seu cliente que consome as APIs REST é responsável por manter esse estado. Geralmente, é na forma de algum token que é transmitido desde o momento em que o usuário fez login. Se o token for bom, sua solicitação será boa.
Verifique como o Amazon AWS faz autenticações. Esse é um exemplo perfeito de "passar a bola" de uma API para outra.
* Pensei em adicionar alguma resposta prática à minha resposta anterior. Experimente o Apache Shiro (ou qualquer biblioteca de autenticação / autorização). Resumindo, tente evitar a codificação personalizada. Depois de integrar sua biblioteca favorita (eu uso o Apache Shiro, btw), você pode fazer o seguinte:
- Crie uma API de logon / logout como:
/api/v1/login
eapi/v1/logout
- Nessas APIs de logon e logout, execute a autenticação com seu repositório de usuários
- O resultado é um token (geralmente,
JSESSIONID
) que é enviado de volta ao cliente (Web, celular, qualquer que seja)
- A partir deste momento, todas as chamadas subsequentes feitas pelo seu cliente incluirão esse token
- Digamos que sua próxima ligação seja feita para uma API chamada
/api/v1/findUser
- A primeira coisa que esse código de API fará é verificar o token ("este usuário está autenticado?")
- Se a resposta voltar como NÃO, você retornará um status HTTP 401 ao cliente. Deixe-os lidar com isso.
- Se a resposta for SIM, continue com o retorno do Usuário solicitado.
Isso é tudo. Espero que isto ajude.