Estou criando uma API que utilizará tokens de acesso para que eu possa rastrear o uso entre vários departamentos e para controle de acesso. Meu plano é utilizar os verbos HTTP adequadamente - GET
recuperará informações, POST
adicionará, DELETE
excluirá etc.
Minha pergunta é: como devo lidar com tokens de acesso nas chamadas GET?
Opção um:
É fornecer o token de acesso como parte da string de consulta: /api/users/?token=ACCESSTOKEN
. O problema que tenho com isso é que o ACCESSTOKEN aparece nos logs do servidor. Esse método também será diferente das solicitações POST ou DELETE que têm o token passado pelo corpo.
Opção dois:
Forneça um corpo para a solicitação (como você faz em uma POST
solicitação) e um dos parâmetros é o token. Meu problema aqui é que outros desenvolvedores da minha empresa estão me dizendo que essa não é uma "verdadeira solicitação GET" porque estou transmitindo dados. O URL que eles chamam simplesmente se parece com isso /api/users/
e eles fornecem token=ACCESSTOKEN
dentro do corpo.
Opção três:
Solte usando GET
e force tudo a ser POST
. Não gosto dessa ideia porque, para muitas dessas chamadas de API, não estou criando novos recursos. Estou simplesmente retornando dados que ficam atrás de uma API que requer autorização.
Existe uma opção que estou faltando ou que devo refinar? Gosto da opção 2, mas sou sensível às preocupações de outros desenvolvedores de departamento.
Authorization
.