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.