5e86ebe6b7
- 新增 ApiResult 统一响应封装类,规范前端接口返回结构 - 添加 AuthController,支持多种登录方式及用户信息接口 - 实现 AuthService,包含登录、登出、密码修改、绑定手机号、重置密码等功能 - 集成图形验证码校验和登录失败锁定机制,增强安全性 - 支持邮箱登录和手机号验证码登录,完善多样化认证策略 - 实现 JWT 令牌签发与吊销,确保会话安全管理 - 配置不同环境 application.yml 及配置,支持多租户和灵活缓存配置 - 增加 .gitignore 规则,屏蔽构建产物、IDE 文件和敏感配置 - 引入 AuthProperties 以配置登录与验证码策略参数
28 lines
987 B
Bash
Executable File
28 lines
987 B
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# 生成 RS256 密钥对,输出可直接追加到 config/iam-jwt.properties 的内容。
|
|
#
|
|
# bash scripts/gen-iam-key.sh >> config/iam-jwt.properties
|
|
#
|
|
# 需要 openssl 与 JDK 25 的 keytool 不冲突:这里统一用 openssl,
|
|
# 生成的是 PKCS#8 私钥 + X.509 公钥,正好是 IamJwtConfig 期望的格式。
|
|
#
|
|
set -euo pipefail
|
|
|
|
WORK_DIR="$(mktemp -d)"
|
|
trap 'rm -rf "$WORK_DIR"' EXIT
|
|
|
|
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out "$WORK_DIR/private.pem" 2>/dev/null
|
|
openssl rsa -in "$WORK_DIR/private.pem" -pubout -out "$WORK_DIR/public.pem" 2>/dev/null
|
|
|
|
# properties 文件里换行需要转义,这里直接压成单行交给 IamJwtConfig 解析
|
|
PRIVATE_KEY="$(awk 'BEGIN{ORS=""} {print}' "$WORK_DIR/private.pem")"
|
|
PUBLIC_KEY="$(awk 'BEGIN{ORS=""} {print}' "$WORK_DIR/public.pem")"
|
|
|
|
cat <<EOF
|
|
|
|
# ===== 由 scripts/gen-iam-key.sh 生成于 $(date '+%Y-%m-%d %H:%M:%S') =====
|
|
private-key=$PRIVATE_KEY
|
|
public-key=$PUBLIC_KEY
|
|
EOF
|