doublex001
|
1b1f6e573d
|
refactor(api): 联调地基收尾(auth/双Token/角色/环境配置/品牌资源)
- auth.ts 登录链路对齐 /auth/password/login → /auth/me 角色权威化
- token-store 持久化 access+refresh;useSmsCode 接入真实短信
- storage.ts 键前缀收敛;P2PasswordReset 文案修正
- app.config.js 默认 apiBaseUrl 指向 job.youthome.com.cn/api/v1
- AGENTS.md 补充『提交后必须推送』约定
- 品牌资源:brand-logo.jpg 替换为有职 logo,icon.png 同步;清理 favicon/splash 冗余
|
4 weeks ago |
doublex001
|
3ef1df2eab
|
feat(auth): 接入后端联调地基(统一请求层+双Token+角色权威化)
落实《职来后端接口联调说明》(job.youthome.com.cn 规范)的前端地基:
- 新建 src/api/http.ts 统一请求层:Base URL 从 env 读取(默认生产 HTTPS 域名)、
Authorization: Bearer 注入、信封 code/message/data/requestId/timestamp 解析、401 单飞
刷新一次并重放、X-Request-Id 透传、HTTP 状态码语义映射(400/401/403/404/409/429/
500/503)。
- 新建 src/lib/token-store.ts:access+refresh 双 Token 内存单例 + AsyncStorage 持久化,
沿用 qingsongpin: 前缀(已更正旧记忆的 youzhi: 误记)。
- 新建 src/api/auth.ts 真实鉴权端点:sendSmsCode / loginByPassword / loginBySms /
fetchCurrentUser / requestLogout / registerCompany,并加 mapBackendRole
(STUDENT→candidate、COMPANY→enterprise、ADMIN→admin)。
- AuthContext 扩 refreshToken 字段、setSession(access,refresh,expiresAt)、logout 清 Token、
启动 hydrateTokens 并注册 401 清会话回调。
- AppRole 扩 admin;删除 api.ts 旧 mock 的 loginByPassword/sendSmsCode(旧端点与规范不符),
归一到 auth.ts。P2PasswordLogin 登录后 setSession 双 Token 并调 /auth/me 权威化角色。
- app.config.js 默认 apiBaseUrl 改为 https://job.youthome.com.cn/api/v1(保留环境变量覆盖)。
业务端点(jobs/profile 等 100+)仍走 mock,下一阶段按 OpenAPI 逐个换 request() 即可。
规范 §1–§10 逐条对照见 后端联调前端实现.md。
tsc 0 错误;jest 398 passed / 28 suites。
|
1 month ago |
doublex001
|
928c310c36
|
feat(theme): 新增间距设计令牌层并收敛 onboarding 非卡片间距
- 新增 src/theme/spacing.ts:标尺(xs4/sm8/md12/lg16/xl24) + 语义令牌(card8/gutter8/framework16/block12/section12),src/theme/index.ts 从 ./spacing 导出
- 扩展 scripts/check-spacing.mjs:resolveSpacing 解析 spacing./spacingTokens. 引用,令牌化卡片不再被静默跳过(修潜在 bug),输出新增令牌命中统计
- onboarding 35 文件非卡片间距令牌化+收敛(18→block/22→section/14→block/10→sm/12→block)
- 更新项目开发状态.md 4.21
- B5(app 框架 padding:16) 本批延期,spacing.framework 单一来源已就绪
|
1 month ago |
doublex001
|
5fbb7222f0
|
feat(auth): 补齐密码登录通道并修复登录态从未写入的缺口
【严重缺口修复】P2(验证码)/ P2Q(一键登录)此前只 navigate('P3'),从不写登录态——
全项目唯一写 token 的地方是微信链路。微信入口一旦摘除,isTokenValid 恒为 false,
每次冷启动都会把用户打回登录页。现三条通道均接入 useAuth().login()。
【新增通道】P1 主通道改为「验证码登录」,「一键登录」为次,新增「密码登录」(P2P):
- P2P 手机号 + 密码登录;P2R 设置 / 重置密码(同页两阶段:验证手机号 → 设新密码,
成功后直接下发登录态,用户无需再登录一次)
- 设置页新增 /settings/password 修改密码,改完强制重登
【密码规则】8–20 位且需含字母和数字,规则计算统一放在 api.ts 的 validatePassword /
validatePasswordConfirm,错误码 → 文案映射放在 constants 的 PASSWORD_RULE_LABEL,
按联合类型 PasswordRuleError 建模,新增成员漏配文案会被测试拦下。
【微信入口摘除】按产品决定(丁总 2026-09-14)前端不做 QQ / 微信登录:
P1Login 移除微信按钮、滑块验证与注销弹窗;P2W / B1 页面、useWechatLogin 状态机、
wechat-sdk 及三个接口函数全部保留待启用,接入路线见 微信登录接入方案.md。
【去重公共件】新增 PasswordField(密码输入 + 明文切换)、useAgreementGate(协议门卫,
此前在 3 个页面被逐字复制)、utils/validators(手机号 / 验证码规则的单一来源)。
【测试】新增 src/__tests__/password.test.ts(24 例)。全套 6 套 45 例通过,
tsc --noEmit 0 错误,eslint . 0 问题,check-routes 67 路由 0 失效跳转。
|
1 month ago |