9 Commits
Author SHA1 Message Date
dujiao-next c5f5511e53 feat: 新增邀请码注册功能 2026-10-11 14:43:43 +08:00
dujiao-next 087e9fbd1d Merge remote-tracking branch 'github/main' 2026-10-11 13:34:30 +08:00
dujiao-next e5e80de0cf fix: 注册/忘记密码/发送验证码限流放宽为独立参数,避免共享 IP 用户被成批误封 2026-10-11 13:22:20 +08:00
dujiao-next 2f437a39c0 fix: 验证码原子占用尝试次数并先落库后发信,注册/忘记密码/发送验证码接入限流 2026-10-11 12:16:08 +08:00
Matt Van Horn 1b955da43e fix: submit epay v2 redirect payments as a POST form
v2 redirect now keeps the signed fields in the gateway payload, sets
submit_method to POST, and leaves PayURL empty, while v1 redirect still
returns a query-string PayURL. CreatePayment then returns a same-origin
/api/v1/payments/epay-redirect URL taken from the notify URL's scheme
and host, with the payment id and a random token in the query, and
stores that token on the payload; a zero payment id or a notify URL
without an http or https origin fails creation with a config error. GET
/api/v1/payments/epay-redirect sits on the callback rate-limit group and
is unauthenticated. It answers with an auto-submitting HTML form that
POSTs the stored fields to the stored gateway endpoint only when the
payment is a pending epay redirect, still within its expiry, not
superseded, and the query token matches the stored token by a
constant-time compare of SHA-256 digests; every other request is a 404
with no form.

Fixes #349
2026-10-06 04:29:41 -07:00
dujiao-next 19654a3849 feat(router): 支付回调、上游回调、渠道 API、礼品卡兑换增加限流 2026-09-15 22:17:40 +08:00
dujiao-next 4e5808831c feat: add Google account sign-in 2026-07-30 15:18:28 +08:00
dujiao-next 4e4d5bbc12 feat: 加固支付安全边界并优化 DujiaoPay 渠道配置 2026-07-27 13:59:31 +08:00
dujiao-next bd5cd2aa15 refactor(http): split server assembly from middleware 2026-07-26 13:08:30 +08:00