Skip to main content

ADR-005: Autenticação PaymentsScheme no endpoint AddRecommendedItem

O endpoint POST api/payment/v2/{id}/add-recommended-item é uma operação que modifica o pedido (adiciona item e altera o total). Decidimos protegê-lo com [Authorize(AuthenticationSchemes = "PaymentsScheme")], o mesmo esquema JWT customizado usado nos endpoints FinishOrder e RetryAsync.

Considered Options

  • A: Sem autenticação, como o GET api/payment/v2/{id}. O GUID no path serviria como identificador. Rejeitado — uma operação de mutação do pedido não deve ser pública.
  • B (escolhida): [Authorize(AuthenticationSchemes = "PaymentsScheme")]. O zzlink já carrega esse token para as operações de finalização de pagamento, então não há custo adicional para o front.
  • C: [UseApiKey]. Adequado para comunicação serviço-a-serviço, não para chamadas originadas do browser do cliente.
  • D: reCAPTCHA, como o GET api/payment/v2/{id}. Proteção contra bots, mas não autentica a sessão — insuficiente para mutação.