- 顶栏 TenantDropdown 替换为 ProjectDropdown(新建 widget)
- 进入时拉 /system/project/simple-list;仅当本地 projectId 不在列表时
才回退到首项,避免静默改写用户选择
- 空列表不渲染,避免出现永远空下拉
- 新增"物联运维"按钮,走 OAuth2 authorization code 流程跳 IoT 前端
- state 使用 crypto.randomUUID() / getRandomValues() 生成(CSRF 防护)
- VITE_IOT_BASE_URL 未配置时按钮隐藏,不再硬编码兜底 URL
- 使用原生 <button disabled> 替代 <a role="button">,修复可访问性
- 新增 /sso-callback 回调页 + /system/sso/callback API
- 挂载后立即 history.replaceState 清 code/state,避免二次 exchange
- API 层做 snake_case → camelCase 映射,统一前端风格
- 文档化 redirectUri 必须与 OAuth2 客户端 redirectUris 白名单一致
- authStore 新增 ssoLogin,与 authLogin 抽取共用 postAuthSuccess
- token 为空直接抛错,fetchUserInfo 失败回滚 token 避免 401 循环
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
25 lines
630 B
Plaintext
25 lines
630 B
Plaintext
# 端口号
|
||
VITE_PORT=5666
|
||
|
||
VITE_BASE=/
|
||
|
||
# 请求路径
|
||
VITE_BASE_URL=http://127.0.0.1:48080
|
||
# 接口地址
|
||
VITE_GLOB_API_URL=/admin-api
|
||
# 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持S3服务
|
||
VITE_UPLOAD_TYPE=client
|
||
# 是否打开 devtools,true 为打开,false 为关闭
|
||
VITE_DEVTOOLS=false
|
||
|
||
# 是否注入全局loading
|
||
VITE_INJECT_APP_LOADING=true
|
||
|
||
# 默认登录用户名
|
||
VITE_APP_DEFAULT_USERNAME=admin
|
||
# 默认登录密码
|
||
VITE_APP_DEFAULT_PASSWORD=admin123
|
||
|
||
# 物联运维平台前端地址(用于业务平台 -> IoT 平台 SSO 跳转)
|
||
VITE_IOT_BASE_URL=http://127.0.0.1:5667
|