chore(sso-portal): 整合近期重构、UX 改进、部署脚本与文档
项目改名 sso-mock → sso-portal: - 重命名仓库目录 sso-mock/ → sso-portal/ - package.json name 改 sso-portal - app/layout.tsx title/description 改 SSO Portal - 源码 [sso-mock] console.log 前缀、注释全部 → [sso-portal] - 文档(README、ADAPTATION_GUIDE)、env 同步 - 生产 svc 名 sso-mock-svc → sso-portal-svc(external-app 引用同步) SSO tenant 改环境变量驱动: - 新增 SSO_TENANT env(默认 cowarobot) - login/route.ts 顶部 const SSO_TENANT,ssoBody 显式使用 - callSsoApi 改回纯透传(不再硬编码覆盖 tenant) - external-app 同步用 SSO_TENANT,命名对齐 external-app 登录态改为基于 token: - page.tsx 读 token cookie 判定 authenticated(不再依赖 user cookie) - DashboardPage 用 authenticated 决定跳转,user 为 null 时优雅兜底展示 - 解决「200 后又跳回 SSO」bug(access_token 接口不返回 user) sso-portal 缺 SSO 参数体验优化: - 缺 app_id/app_url 时 Alert 提示 + 禁用所有输入和登录按钮 - components/login/index.tsx 加 missingSsoParams 检测 - Alert 样式两排完整显示 部署脚本(参考 uirefbase): - 新增 build.sh(git → pnpm install → build → docker build → tag → push) - 新增 .gitlab-ci.yml(main 分支触发 build.sh prod) - 新增 Dockerfile(standalone 模式,端口 5501) - package.json 加 env-cmd 依赖 + build:stage/build 脚本 - next.config.ts 保持 output: 'standalone' 代码清理: - 删除 utils/code-store.ts - 删除 app/api/auth/verify/(连同目录) - 移除旧的 codeStore / generateCode 逻辑 文档: - ADAPTATION_GUIDE.md:完整重写对齐真实后端三个 SSO 接口(/sso/account、/sso/phone/smscode、/sso/access_token) - 新增 INTEGRATION_GUIDE.md(从 external-app 迁移过来作为通用接入指南) - README.md 同步更新(sso-portal 仓库门面 + 文档索引) - external-app/README.md 加交叉链接指向 sso-portal 的接入文档
This commit is contained in:
57
build.sh
Executable file
57
build.sh
Executable file
@@ -0,0 +1,57 @@
|
||||
#!/bin/bash
|
||||
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
NC='\033[0m'
|
||||
|
||||
SHELL_FOLDER=$(cd "$(dirname "$0")";pwd)
|
||||
HOME_PATH=$(cd ~;pwd)
|
||||
|
||||
# 用法:
|
||||
# ./build.sh 预发布(默认 staging)
|
||||
# ./build.sh prod 生产
|
||||
TAG=stage_latest
|
||||
BUILD_FLAG=build:stage
|
||||
if [[ $1 == prod ]]; then
|
||||
TAG=prod_latest
|
||||
BUILD_FLAG=build:prod
|
||||
fi
|
||||
|
||||
cd $SHELL_FOLDER
|
||||
|
||||
# # 检查 git 状态
|
||||
# echo -e "${GREEN}Checking git status...${NC}"
|
||||
# git fetch
|
||||
# git merge
|
||||
# if [[ $? != 0 ]]; then echo -e "${RED}git merge error${NC}"; exit 100; fi
|
||||
|
||||
# BRANCH_NAME=`git branch | grep "*"`
|
||||
# echo -e "${GREEN}Current branch: ${BRANCH_NAME/* /}${NC}"
|
||||
|
||||
# 安装依赖
|
||||
echo -e "${GREEN}Installing dependencies...${NC}"
|
||||
pnpm install
|
||||
if [[ $? != 0 ]]; then echo -e "${RED}pnpm install failed${NC}"; exit 100; fi
|
||||
|
||||
# 执行构建
|
||||
echo -e "${GREEN}Building project...${NC}"
|
||||
pnpm run $BUILD_FLAG
|
||||
if [[ $? != 0 ]]; then echo -e "${RED}build error${NC}"; exit 100; fi
|
||||
|
||||
# Docker 构建和推送
|
||||
MAIN_NAME=web_sso_portal
|
||||
DOCKER_FILE=$SHELL_FOLDER/Dockerfile
|
||||
HARBOR_REPO=softrepo
|
||||
if [[ $ENV == prod ]]; then
|
||||
HARBOR_REPO=softpro
|
||||
fi
|
||||
|
||||
echo -e "${GREEN}Building docker image...${NC}"
|
||||
docker build -f $DOCKER_FILE -t $MAIN_NAME $SHELL_FOLDER
|
||||
if [[ $? != 0 ]]; then echo -e "${RED}build docker with error${NC}"; exit 100; fi
|
||||
|
||||
echo -e "${GREEN}Tagging and pushing docker image...${NC}"
|
||||
docker tag $MAIN_NAME harbor.cowarobot.cn/$HARBOR_REPO/$MAIN_NAME:$TAG
|
||||
docker push harbor.cowarobot.cn/$HARBOR_REPO/$MAIN_NAME:$TAG
|
||||
|
||||
echo -e "${GREEN}Build completed successfully${NC}"
|
||||
Reference in New Issue
Block a user