簡單實作 ASP.NET Core 6 的 Idempotent Key / Idempotency Key

HttpMethod 的幂等性(Idempotent),指的是相同的請求參數,不論調用幾次結果都是相同的,不會影響結果。例如,PUT 要求必須具有等冪性。 若用戶端多次送出相同的 PUT 要求,結果應該永遠保持不變 (使用相同的值會修改相同的資源)。為什麼需要冪等,假設,在店商平台購物,付款時,連續點選了兩次支付,如果平台沒有做好保護、驗證,就會發生扣款兩次,我們會有幾種手段來避免這樣的事發生:前端攔截(PRG 防止表單重送)、平台語言鎖、分散式鎖、資料庫主鍵、唯一鍵 / 唯一索引、資料庫樂觀鎖定(搭配版號)、Token 令牌…等。

...繼續閱讀 »