feat(auth): 实现统一认证模块及登录策略
- 新增 ApiResult 统一响应封装类,规范前端接口返回结构 - 添加 AuthController,支持多种登录方式及用户信息接口 - 实现 AuthService,包含登录、登出、密码修改、绑定手机号、重置密码等功能 - 集成图形验证码校验和登录失败锁定机制,增强安全性 - 支持邮箱登录和手机号验证码登录,完善多样化认证策略 - 实现 JWT 令牌签发与吊销,确保会话安全管理 - 配置不同环境 application.yml 及配置,支持多租户和灵活缓存配置 - 增加 .gitignore 规则,屏蔽构建产物、IDE 文件和敏感配置 - 引入 AuthProperties 以配置登录与验证码策略参数
This commit is contained in:
Executable
+61
@@ -0,0 +1,61 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# 开发环境启动脚本。
|
||||
#
|
||||
# 项目要求 Java 25(maven.compiler.release=25),系统默认 JDK 可能是 17,
|
||||
# 直接跑 ./mvnw 会报 "release version 25 not supported",所以这里固定 JDK。
|
||||
#
|
||||
# 用法:
|
||||
# ./run.sh 使用 dev profile(连本地 MySQL / Redis)
|
||||
# ./run.sh demo 使用 demo profile(H2 + 内存缓存,零外部依赖)
|
||||
# ./run.sh dev --server.port=8081
|
||||
# JDK25_HOME=/path/to/jdk ./run.sh
|
||||
#
|
||||
set -euo pipefail
|
||||
|
||||
JDK25_HOME="${JDK25_HOME:-$HOME/Library/Java/JavaVirtualMachines/temurin-25.jdk}"
|
||||
|
||||
# macOS 的 .jdk 是 bundle 结构,真正的 JDK 根目录在 Contents/Home;
|
||||
# 也兼容直接指向 JDK 根目录的情况。
|
||||
if [[ -x "$JDK25_HOME/Contents/Home/bin/java" ]]; then
|
||||
JDK25_HOME="$JDK25_HOME/Contents/Home"
|
||||
fi
|
||||
|
||||
if [[ ! -x "$JDK25_HOME/bin/java" ]]; then
|
||||
echo "未找到 JDK 25:$JDK25_HOME" >&2
|
||||
echo "可通过 JDK25_HOME=/path/to/jdk25 ./run.sh 指定其他位置" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
export JAVA_HOME="$JDK25_HOME"
|
||||
export PATH="$JAVA_HOME/bin:$PATH"
|
||||
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
# JDK 23 起 sun.misc.Unsafe 的内存访问方法被标记为「最终弃用」,
|
||||
# Netty(来自 Lettuce/Redis)内部仍在使用,启动时会打印 WARNING。
|
||||
APP_JVM_ARGS="${APP_JVM_ARGS:---sun-misc-unsafe-memory-access=allow}"
|
||||
|
||||
PROFILE="${1:-dev}"
|
||||
if [[ "$PROFILE" == "demo" ]]; then
|
||||
# demo 需要 H2,而 H2 只在 -Pdemo 时是 runtime 依赖
|
||||
MVN_PROFILE=(-Pdemo)
|
||||
shift || true
|
||||
else
|
||||
MVN_PROFILE=()
|
||||
shift || true
|
||||
fi
|
||||
|
||||
echo "JDK: $("$JAVA_HOME/bin/java" -version 2>&1 | head -1)"
|
||||
echo "Profile: $PROFILE"
|
||||
|
||||
if [[ $# -gt 0 ]]; then
|
||||
exec ./mvnw -q "${MVN_PROFILE[@]}" spring-boot:run \
|
||||
-Dspring-boot.run.profiles="$PROFILE" \
|
||||
-Dspring-boot.run.jvmArguments="$APP_JVM_ARGS" \
|
||||
-Dspring-boot.run.arguments="$*"
|
||||
fi
|
||||
|
||||
exec ./mvnw -q "${MVN_PROFILE[@]}" spring-boot:run \
|
||||
-Dspring-boot.run.profiles="$PROFILE" \
|
||||
-Dspring-boot.run.jvmArguments="$APP_JVM_ARGS"
|
||||
Reference in New Issue
Block a user