v1.2.3
v1.2.3 — Strava OAuth 全链路打通 + 图表对齐官方
🎯 Strava OAuth 授权彻底打通(核心)
修复多个相互叠加、导致「授权成功却拿不到数据」的问题:
- 🔑 修复 token 被误删:
save_config原无条件删除strava_tokens.json,授权/刷新成功后 token 随即丢失、缓存永远不存在(每次轮询重复刷新)。改为仅当 refresh_token 实际变更才清缓存;exchange_code/refresh_token先保存 config 再写 token。 - ⚡ 修复并发竞态:面板
/api/info每秒轮询会触发refresh_token(),与 OAuth 授权写 token 并发互相覆盖(新 token 被旧 refresh 覆盖回 read-only)。用RLock串行化 token/config 读改写。 - 🎯 修复 scope 误判:Strava 返回 scope 为空格分隔(
activity:read_all read),原按逗号split(",")误判缺activity:read_all,导致授权成功的 token 也被判失效。现兼容逗号/空格分隔。 - 🔗 修复回调地址:不再自动跟随访问入口——仅内网/本机 Host 推导;公网中转域名(
office.app.5ddd.com)与残缺相对路径(/oauth/callback)一律拒绝,引导显式配置完整http://<NAS内网IP>:20227/oauth/callback。
📊 骑行数据图表对齐官方 Strava
- 时间筛选合并为一组 7 选项(近7天/近1月/近3月/近6月/本年度/近12月/所有),去掉原双行重叠按钮与 7D/YTD 英文简写,全量 i18n。
- 粒度按官方:近7天/近1月→每日;近3月/近6月→每周;本年度/近12月→每月;所有→每年。
- 空桶补全:每日/周/月补全范围内所有时间点,无骑行返回 0,图表时间轴不断裂。
- Y 轴 ×1.2 顶部留白、曲线平滑(Catmull-Rom 贝塞尔)、描边非缩放(桌面细线)、数值保留 1 位小数、0 值天不显示数值文字。
- 时间筛选按钮 flex 自适应换行,移动端整洁。
🖼️ 其他
- 凭据回显免重输:设置页自动回填已存凭据,
/api/config拒绝非绝对 URL 的 redirect_uri。 - 应用图标 + 网页 favicon 换成官方 Strava 橙色圆角徽标(SVG)。
- OAuth 诊断:授权失败时记录 Strava 返回的具体原因到日志。
📦 安装
fpk 下载后,在 fnOS App Center 手动安装(普通版 url + 桌面内嵌 iframe 双版本):
# fnOS App Center → 手动安装 → 选择 strava-1.2.3.fpk首次使用:到 Strava API 设置 注册 Callback Domain 为你的 NAS 内网 IP(不带端口,如
192.168.31.101),在能访问内网的环境完成 OAuth 授权。
Full Changelog: v1.2.2...v1.2.3