# g2rain-main-shell(控制台主入口)

g2rain-main-shell 是控制台主应用(Shell),基于 Vue 3 + TypeScript + qiankun 提供管理后台框架能力:包括 Token 管理、SSO 单点登录、微前端应用装载,以及与平台安全链路配套的请求签名机制。

# 核心能力

  • Token 管理:基于 JWT 与 DPoP 的 Token 生成、验证与刷新
  • SSO 单点登录:集成 g2rain-iam 授权码模式认证流程
  • 微前端架构:基于 qiankun 完成子应用 mount/unmount 管理
  • 多 TabTypes 管理:主应用与子应用的 TabTypes 页面管理
  • 安全签名:使用 ES256 算法进行请求签名,保障 API 安全性

# 技术栈

  • 前端:Vue 3.3.4 + TypeScript、Vite 5、qiankun 2.x、Element Plus
  • 状态管理:Pinia + 持久化插件
  • 后端/签名链路:OpenResty(Nginx + Lua)、Lua lua-resty-openssl(ES256 签名支持)

# 快速开始

npm install
npm run dev

本地访问:http://localhost:3000

# 环境变量(.env 示例)

  • VITE_APPLICATION_CODE:应用编码(必填)
  • VITE_CONTEXT_PATH:应用基础路径(必填,例如 //main
  • VITE_SSO_BASE_URL:SSO 跳转基础地址(必填,不含路径)
  • VITE_AUTH_END_POINT:SSO 认证端点(必填,示例 /auth/authorize
  • VITE_REDIRECT_URI:SSO 回调地址(必填,示例 /sso_callback
  • VITE_TOKEN_END_POINT:Token 生成/刷新接口(可选)
  • VITE_MOCK_ENABLED:是否启用 Mock(可选)

# 运行时环境注入(Docker 场景)

main-shell 支持在构建后生成 dist/env-config.js,在容器启动时通过 docker-entrypoint.sh 替换 __CONTEXT_PATH____SSO_BASE_URL__ 等占位符,实现“运行时配置,避免反复构建”。

# 业务开发目录

主要开发目录是 views/

views/
├── api/              # API 服务层与类型定义
├── user/            # 用户模块页面
├── role/            # 角色模块页面
└── route-map.ts    # 路由映射配置