
superman2003andCursor
29a5fcd25e
fix(gateway,frontend): 修复鉴权绕过与前端支付/会话缺陷
后端:
- Gemini /v1beta 鉴权中间件补齐主中间件的授权校验: API Key 的 IP 白/黑名单、
专属分组授权、运行时过期/配额二次检查, 修复经 Gemini 端点绕过 IP ACL、
越权访问专属分组、以及状态未刷新时的配额/有效期绕过窗口。
- 粘性会话等待计划分支改走 newSelectionResult 以 hydrate 账号凭证, 修复调度
快照中账号凭证被剥离导致等待路径转发鉴权失败。
- SSE 流式转发客户端断开时不再 break 跳过当前事件 usage 合并, 修复少计费。
- Forward 对 nil gin.Context 的防御补齐; 上游错误体读取失败时记录日志避免静默。
前端:
- logout 将本地会话清理移入 finally, 服务端吊销失败也保证本地登出。
- Stripe 弹窗轮询改用正确的 auth_token 键并加防重入; 收到 INIT 后清除兜底
超时定时器, onUnmounted 清理 message 监听器。
- token 刷新请求补充 30s 超时, 避免挂起导致请求队列与 loading 永久卡死。
- 路由守卫在公共设置未加载时先 await fetchPublicSettings, 避免 payment/
risk_control 被误判为未启用而错误拦截。
- 支付状态轮询回调补充防重入与终态守卫。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-09 09:06:56 +08:00
..
2026-05-28 01:27:11 +08:00
2026-06-05 14:09:03 +08:00
2026-07-02 10:43:08 +08:00
2026-06-26 16:19:41 +08:00
2026-07-01 12:21:45 +08:00
2026-07-01 12:21:45 +08:00
2026-07-06 20:05:50 +08:00
2026-07-06 20:05:50 +08:00
2026-06-30 10:40:05 +08:00
2026-05-26 11:24:25 -07:00
2026-06-16 17:59:06 +08:00
2026-06-16 11:44:39 +08:00
2026-07-06 11:43:16 +08:00
2026-07-06 11:43:16 +08:00
2026-07-01 12:21:45 +08:00
2026-06-29 17:53:19 +08:00
2026-06-22 16:07:41 +00:00
2026-05-26 13:57:59 +08:00
2026-07-01 12:21:45 +08:00
2026-07-07 08:34:18 +08:00
2026-07-04 08:28:30 +08:00
2026-07-01 12:21:45 +08:00
2026-07-01 12:21:45 +08:00
2026-07-04 08:28:30 +08:00
2026-06-07 15:23:45 +08:00
2026-07-03 17:22:49 +00:00
2026-07-06 20:05:50 +08:00
2026-07-03 14:41:18 +08:00
2026-07-08 08:49:22 +08:00
2026-06-10 14:16:51 +08:00
2026-06-10 14:16:51 +08:00
2026-07-08 08:49:22 +08:00
2026-07-08 08:49:22 +08:00
2026-06-05 14:00:57 +08:00
2026-07-06 11:43:16 +08:00
2026-05-23 10:18:43 +08:00
2026-06-01 08:41:35 +08:00
2026-06-08 00:01:30 +08:00
2026-05-30 17:52:18 +08:00
2026-05-30 17:52:18 +08:00
2026-07-07 18:53:56 +08:00
2026-06-04 01:06:41 +08:00
2026-06-03 12:06:05 +08:00
2026-07-06 11:43:16 +08:00
2026-07-01 12:21:45 +08:00
2026-07-08 08:49:22 +08:00
2026-07-08 08:49:22 +08:00
2026-07-02 10:43:08 +08:00
2026-05-30 20:01:38 +08:00
2026-05-30 20:01:38 +08:00
2026-05-31 22:00:03 +08:00
2026-07-08 08:49:22 +08:00
2026-07-08 08:49:22 +08:00
2026-07-08 08:49:22 +08:00
2026-06-25 16:29:33 +08:00
2026-07-08 08:49:22 +08:00
2026-07-08 08:49:22 +08:00
2026-07-08 08:49:22 +08:00
2026-06-10 08:58:06 +08:00
2026-05-31 22:00:03 +08:00
2026-05-31 22:00:03 +08:00
2026-05-31 22:00:03 +08:00
2026-05-31 22:00:03 +08:00
2026-07-05 08:34:34 +08:00
2026-07-06 12:22:04 +08:00
2026-05-27 18:00:45 +08:00
2026-07-06 12:22:04 +08:00
2026-06-05 14:00:57 +08:00
2026-07-02 15:58:29 +08:00
2026-06-28 09:05:28 +08:00
2026-07-02 15:58:29 +08:00
2026-07-02 15:58:29 +08:00
2026-06-19 21:17:45 +08:00
2026-05-26 10:49:20 +08:00
2026-06-11 18:55:27 +08:00
2026-05-26 10:49:20 +08:00
2026-05-26 10:49:20 +08:00
2026-06-19 21:17:45 +08:00
2026-05-26 10:49:20 +08:00
2026-06-30 13:22:27 +08:00
2026-05-29 17:19:15 +08:00
2026-05-26 10:49:20 +08:00
2026-07-01 14:07:08 +08:00
2026-05-20 13:25:18 +08:00
2026-07-07 18:53:56 +08:00
2026-07-07 18:53:56 +08:00
2026-07-07 18:53:56 +08:00
2026-07-04 05:30:50 +08:00
2026-07-07 18:53:56 +08:00
2026-07-04 05:30:50 +08:00
2026-07-07 18:53:56 +08:00
2026-07-06 12:22:04 +08:00
2026-07-07 18:53:56 +08:00
2026-07-07 18:53:56 +08:00
2026-07-07 03:31:39 +08:00
2026-07-07 18:53:56 +08:00
2026-07-07 03:31:39 +08:00
2026-07-07 18:53:56 +08:00
2026-07-07 03:31:39 +08:00
2026-07-07 18:53:56 +08:00
2026-07-07 18:53:56 +08:00
2026-07-04 05:30:50 +08:00
2026-07-07 18:53:56 +08:00
2026-07-07 18:53:56 +08:00
2026-07-04 05:30:50 +08:00
2026-07-04 05:30:50 +08:00
2026-07-04 05:30:50 +08:00
2026-07-07 18:53:56 +08:00
2026-07-07 18:53:56 +08:00
2026-07-07 18:53:56 +08:00
2026-07-07 18:53:56 +08:00
2026-06-10 09:00:21 +08:00
2026-06-10 09:00:21 +08:00
2026-06-22 10:30:27 +08:00
2026-05-26 10:49:20 +08:00
2026-05-29 17:19:15 +08:00
2026-05-29 17:19:15 +08:00
2026-05-29 17:19:15 +08:00
2026-07-01 00:37:51 +08:00
2026-07-01 17:54:39 +08:00
2026-07-01 17:54:39 +08:00
2026-07-07 18:53:56 +08:00
2026-07-01 17:46:12 +08:00
2026-05-21 11:46:24 +08:00
2026-05-20 21:19:06 +08:00
2026-05-20 21:19:06 +08:00
2026-06-12 22:09:53 +08:00
2026-06-12 22:09:53 +08:00
2026-06-12 22:09:53 +08:00
2026-06-12 22:09:53 +08:00
2026-06-12 22:09:53 +08:00
2026-06-07 20:30:56 +08:00
2026-06-21 07:46:52 -07:00
2026-05-21 11:46:24 +08:00
2026-06-21 21:13:14 +08:00
2026-06-18 19:22:10 +08:00
2026-07-03 22:36:39 +08:00
2026-07-06 16:45:15 +08:00
2026-07-07 09:22:44 +08:00
2026-07-03 21:02:31 +08:00
2026-06-12 01:47:01 +08:00
2026-06-12 01:47:01 +08:00
2026-05-22 14:54:06 +08:00
2026-05-22 14:54:06 +08:00
2026-06-26 10:43:05 +08:00
2026-06-26 10:43:05 +08:00
2026-07-01 12:21:45 +08:00
2026-07-01 12:21:45 +08:00
2026-07-01 12:21:45 +08:00
2026-07-01 12:21:45 +08:00
2026-06-05 22:47:24 +08:00
2026-05-26 10:49:20 +08:00
2026-07-05 17:24:38 +08:00
2026-05-20 13:25:58 +08:00
2026-05-20 13:25:18 +08:00
2026-06-29 10:29:23 +08:00
2026-05-31 22:00:03 +08:00
2026-07-02 10:43:08 +08:00
2026-07-07 22:14:46 +08:00
2026-06-19 07:53:32 -07:00
2026-05-30 20:01:39 +08:00
2026-07-07 22:14:46 +08:00
2026-07-01 11:32:22 +08:00
2026-06-19 08:01:29 -07:00
2026-06-19 08:01:29 -07:00
2026-06-19 08:01:29 -07:00
2026-07-08 08:49:20 +08:00
2026-06-19 08:01:29 -07:00
2026-07-08 08:49:20 +08:00
2026-07-01 10:54:18 +08:00
2026-06-16 19:37:31 +08:00
2026-06-16 19:37:31 +08:00
2026-06-16 19:37:31 +08:00
2026-06-16 19:37:31 +08:00
2026-07-09 09:06:56 +08:00
2026-06-26 15:38:06 +08:00
2026-06-26 15:38:06 +08:00
2026-07-06 11:43:16 +08:00
2026-06-15 11:04:24 +08:00
2026-06-06 01:01:58 +08:00
2026-06-19 08:01:29 -07:00
2026-07-03 21:02:32 +08:00
2026-07-07 13:53:39 +08:00
2026-06-18 19:07:08 +08:00
2026-07-07 13:53:39 +08:00
2026-07-09 09:06:56 +08:00
2026-05-21 11:46:24 +08:00
2026-05-31 16:38:42 +08:00
2026-07-01 21:01:11 -05:00
2026-07-08 08:49:20 +08:00
2026-06-18 22:50:46 +08:00
2026-06-16 20:25:09 +08:00
2026-07-08 08:49:20 +08:00
2026-07-09 09:06:56 +08:00
2026-07-08 08:49:20 +08:00
2026-07-07 13:41:40 +08:00
2026-07-07 13:41:40 +08:00
2026-05-30 20:01:38 +08:00
2026-06-16 19:37:31 +08:00
2026-06-16 23:19:45 +08:00
2026-06-21 21:14:09 +08:00
2026-07-06 11:43:16 +08:00
2026-06-08 00:01:30 +08:00
2026-06-09 13:53:19 +08:00
2026-07-07 16:44:20 +08:00
2026-06-26 10:36:09 +08:00
2026-06-26 10:42:21 +08:00
2026-06-26 10:42:21 +08:00
2026-06-26 10:42:21 +08:00
2026-06-26 14:26:43 +08:00
2026-06-26 14:26:43 +08:00
2026-06-26 14:26:43 +08:00
2026-06-26 14:26:43 +08:00
2026-06-26 14:26:43 +08:00
2026-07-02 20:22:17 +00:00
2026-07-02 20:22:17 +00:00
2026-05-27 18:00:45 +08:00
2026-07-01 17:46:12 +08:00
2026-07-06 12:22:04 +08:00
2026-05-28 00:02:50 +08:00
2026-05-26 13:57:59 +08:00
2026-05-26 13:57:59 +08:00
2026-06-09 20:08:20 +08:00
2026-06-09 20:08:20 +08:00
2026-06-06 01:01:58 +08:00
2026-07-07 16:58:48 +08:00
2026-07-07 16:58:48 +08:00
2026-06-11 17:45:09 +08:00
2026-06-11 16:56:43 +08:00
2026-06-05 22:47:24 +08:00
2026-06-05 22:47:24 +08:00
2026-05-26 20:29:48 +08:00
2026-05-26 20:29:48 +08:00
2026-05-31 22:57:56 +08:00
2026-05-31 22:57:56 +08:00
2026-07-04 08:28:30 +08:00
2026-07-04 08:28:30 +08:00
2026-06-12 01:47:01 +08:00
2026-06-12 01:47:01 +08:00
2026-07-01 12:21:45 +08:00
2026-06-08 00:01:30 +08:00
2026-06-26 14:26:43 +08:00
2026-07-01 12:21:45 +08:00
2026-07-01 12:21:45 +08:00
2026-07-05 17:24:38 +08:00
2026-07-01 12:21:45 +08:00
2026-07-06 11:43:16 +08:00
2026-07-06 11:43:16 +08:00
2026-06-16 15:59:00 +08:00
2026-07-06 19:11:08 +08:00
2026-07-01 12:21:45 +08:00
2026-07-01 12:21:45 +08:00
2026-06-26 16:19:41 +08:00
2026-07-06 19:03:36 +08:00
2026-07-06 19:03:36 +08:00
2026-07-07 15:54:55 +08:00
2026-06-22 16:07:41 +00:00
2026-06-22 16:07:41 +00:00
2026-06-29 10:25:43 +08:00
2026-07-01 10:54:51 +08:00
2026-07-07 16:58:48 +08:00
2026-07-08 10:04:14 +08:00
2026-07-08 10:04:14 +08:00
2026-04-25 14:52:58 +08:00
2026-06-05 18:11:23 +08:00
2026-03-29 20:52:29 +08:00
2026-07-01 01:30:42 +08:00
2026-06-12 01:47:01 +08:00
2026-06-12 01:47:01 +08:00
2026-06-12 01:47:01 +08:00
2026-06-12 01:47:01 +08:00
2026-05-28 19:39:52 +08:00
2026-07-06 19:11:08 +08:00
2026-06-26 17:59:26 +08:00
2026-06-09 21:56:35 +08:00
2026-07-07 15:27:23 +08:00
2026-07-07 15:27:23 +08:00
2026-07-07 22:14:46 +08:00
2026-06-18 19:07:08 +08:00
2026-07-07 22:14:46 +08:00
2026-06-29 10:29:23 +08:00
2026-07-07 22:14:46 +08:00
2026-06-12 01:47:01 +08:00
2026-07-02 11:42:10 +08:00
2026-07-06 19:11:08 +08:00
2026-07-08 08:49:21 +08:00
2026-07-07 16:44:20 +08:00
2026-07-07 10:55:07 +08:00
2026-07-07 20:59:41 +08:00
2026-07-07 22:14:46 +08:00
2026-07-07 22:14:46 +08:00
2026-06-26 16:06:01 +08:00
2026-06-25 16:18:11 +08:00
2026-07-07 22:14:46 +08:00
2026-07-06 18:32:29 +08:00
2026-07-08 08:49:21 +08:00
2026-07-08 08:49:21 +08:00
2026-06-04 11:34:54 +08:00
2026-07-07 22:14:46 +08:00
2026-07-07 22:14:46 +08:00
2026-07-06 19:03:36 +08:00
2026-06-04 22:07:36 +08:00
2026-07-04 10:04:42 +08:00
2026-07-01 12:21:45 +08:00
2026-07-07 13:04:28 +08:00
2026-07-08 08:49:21 +08:00
2026-07-08 08:49:21 +08:00
2026-07-07 22:14:46 +08:00
2026-07-03 22:36:39 +08:00
2026-06-23 16:57:16 +08:00
2026-06-23 16:57:16 +08:00
2026-06-26 10:36:09 +08:00
2026-07-06 19:11:08 +08:00
2026-05-05 19:36:33 +08:00
2026-06-29 18:33:37 +08:00
2026-06-29 18:33:37 +08:00
2026-07-06 17:34:22 +08:00
2026-07-01 01:30:42 +08:00
2026-07-02 14:33:55 +08:00
2026-06-22 16:07:41 +00:00
2026-07-02 14:37:30 +08:00
2026-07-02 14:37:30 +08:00
2026-07-02 13:27:58 +08:00
2026-07-02 13:27:58 +08:00
2026-07-01 12:21:45 +08:00
2026-07-02 14:37:30 +08:00
2026-05-23 10:18:43 +08:00
2026-06-22 16:07:41 +00:00
2026-07-06 11:43:16 +08:00
2026-07-06 11:43:16 +08:00
2026-06-23 22:53:20 +08:00
2026-06-07 22:31:45 +08:00
2026-06-07 22:31:45 +08:00
2026-05-29 12:20:30 +08:00
2026-05-28 01:27:11 +08:00
2026-06-30 10:42:32 +08:00
2026-07-03 22:36:39 +08:00
2026-07-08 08:49:21 +08:00
2026-07-08 08:49:21 +08:00
2026-07-08 08:49:21 +08:00
2026-05-31 16:00:35 +08:00
2026-07-08 08:49:21 +08:00
2026-06-12 01:47:01 +08:00
2026-07-08 08:49:21 +08:00
2026-07-08 08:49:21 +08:00
2026-06-29 17:53:19 +08:00
2026-06-29 17:53:19 +08:00
2026-06-26 10:36:09 +08:00
2026-06-30 10:40:05 +08:00
2026-06-30 10:41:41 +08:00
2026-05-26 20:07:00 +08:00
2026-06-06 16:54:56 +08:00
2026-07-01 12:21:45 +08:00
2026-07-02 20:04:47 +00:00
2026-06-07 22:31:45 +08:00
2026-06-08 00:01:30 +08:00
2026-07-02 20:04:47 +00:00
2026-05-26 17:21:56 +08:00
2026-05-26 17:21:56 +08:00
2026-07-03 23:02:27 +08:00
2026-06-27 14:35:19 +08:00
2026-06-05 14:00:57 +08:00
2026-05-20 13:25:32 +08:00
2026-07-03 23:02:27 +08:00
2026-07-03 23:02:27 +08:00
2026-05-29 14:32:45 +08:00
2026-05-29 10:47:47 +08:00
2026-05-29 14:32:45 +08:00
2026-06-27 14:35:19 +08:00
2026-06-27 14:35:19 +08:00
2026-06-27 14:35:19 +08:00
2026-06-27 14:35:19 +08:00
2026-06-10 00:15:51 +08:00
2026-06-12 01:47:01 +08:00
2026-07-03 23:02:27 +08:00
2026-07-03 23:02:27 +08:00
2026-07-06 14:34:17 +08:00
2026-07-06 15:00:29 +08:00
2026-07-06 15:00:29 +08:00
2026-07-02 16:11:07 +08:00
2026-07-06 15:00:29 +08:00
2026-07-06 15:00:29 +08:00
2026-07-06 15:00:29 +08:00
2026-07-06 15:00:29 +08:00
2026-07-06 10:56:43 +08:00
2026-06-19 17:47:10 +08:00
2026-06-05 22:47:24 +08:00
2026-05-20 16:08:41 +08:00
2026-06-30 10:19:50 +08:00
2026-07-06 14:34:17 +08:00
2026-07-06 14:34:17 +08:00
2026-06-30 10:19:50 +08:00
2026-06-30 10:19:50 +08:00
2026-07-06 15:00:29 +08:00
2026-06-30 10:00:48 +08:00
2026-07-06 15:00:29 +08:00
2026-05-26 10:49:20 +08:00
2026-07-07 18:53:56 +08:00
2026-07-07 18:53:56 +08:00
2026-06-18 23:07:25 +08:00
2026-06-08 00:01:30 +08:00
2026-06-08 00:01:30 +08:00
2026-06-08 00:01:30 +08:00
2026-06-08 00:01:30 +08:00
2026-06-08 00:01:30 +08:00
2026-07-05 08:34:34 +08:00
2026-05-23 10:18:43 +08:00
2026-07-04 08:28:30 +08:00
2026-07-04 08:28:30 +08:00
2026-05-23 10:18:43 +08:00
2026-05-26 20:29:48 +08:00
2026-06-05 18:12:33 +08:00
2026-07-01 12:21:45 +08:00
2026-07-06 10:59:23 +08:00
2026-07-06 11:43:16 +08:00
2026-05-20 16:08:41 +08:00
2026-07-02 16:38:42 +00:00
2026-07-02 16:38:42 +00:00
2026-05-21 21:02:26 +08:00
2026-05-21 21:02:26 +08:00
2026-06-16 11:56:40 +08:00
2026-05-31 22:00:03 +08:00
2026-06-16 11:56:40 +08:00
2026-06-26 10:36:09 +08:00
2026-07-08 08:49:20 +08:00
2026-07-08 08:49:20 +08:00
2026-07-08 08:49:20 +08:00
2026-07-08 08:49:20 +08:00
2026-07-08 08:49:20 +08:00
2026-06-13 04:12:13 +08:00
2026-06-26 16:19:41 +08:00
2026-06-26 16:19:41 +08:00
2026-06-30 14:03:33 +08:00
2026-06-05 14:00:57 +08:00
2026-07-05 17:24:38 +08:00
2026-06-05 14:00:57 +08:00
2026-07-08 08:49:20 +08:00
2026-07-08 08:49:20 +08:00
2026-06-05 14:00:57 +08:00
2026-07-07 15:27:23 +08:00
2026-07-01 12:21:45 +08:00
2026-07-01 12:21:45 +08:00
2026-07-01 12:21:45 +08:00
2026-07-01 22:19:21 +08:00
2026-05-18 21:09:11 +08:00
2026-07-01 22:19:21 +08:00
2026-06-05 22:47:24 +08:00
2026-07-01 22:19:21 +08:00
2026-07-01 22:19:21 +08:00
2026-06-16 19:37:31 +08:00
2026-06-16 19:37:31 +08:00
2026-06-16 19:37:31 +08:00
2026-06-26 10:36:09 +08:00
2026-06-26 10:36:09 +08:00
2026-07-03 15:21:53 +08:00
2026-07-05 08:34:34 +08:00
2026-07-05 08:34:34 +08:00
2026-07-01 12:21:45 +08:00
2026-05-20 13:25:58 +08:00
2026-05-28 17:27:01 +08:00
2026-05-28 17:27:01 +08:00
2026-07-06 17:46:44 +08:00
2026-07-07 08:28:41 +08:00
2026-07-06 12:22:04 +08:00
2026-06-12 01:47:01 +08:00
2026-06-12 01:47:01 +08:00
2026-07-03 21:02:32 +08:00
2026-06-30 15:31:28 +08:00
2026-07-06 20:27:13 +08:00
2026-07-06 20:27:13 +08:00
2026-05-29 17:19:15 +08:00
2026-05-29 17:19:15 +08:00
2026-05-29 17:19:15 +08:00
2026-06-30 10:19:50 +08:00
2026-06-08 22:54:01 +08:00
2026-07-01 22:19:21 +08:00
2026-07-01 00:37:51 +08:00
2026-07-06 12:22:04 +08:00
2026-07-07 03:27:11 +08:00