logo
0
0
WeChat Login
feat: 更新获取用户信息接口并添加用户信息响应DTO

auth-demo

基于 Spring Boot + Spring Security + JWT + MyBatis-Plus 的用户认证服务。

技术栈

  • Java 11
  • Spring Boot 2.7.18
  • Spring Security
  • JWT(jjwt 0.11.5)
  • MyBatis-Plus 3.5.3
  • MySQL 8.0
  • Lombok

项目结构

src/main/java/com/auth/
├── controller/        # 接口层
├── dto/               # 请求/响应数据对象
├── entity/            # 数据库实体
├── exception/         # 全局异常处理
├── mapper/            # MyBatis-Plus Mapper
├── security/          # Spring Security 配置 & JWT 过滤器
├── service/           # 业务逻辑
└── util/              # JWT 工具类

数据库初始化

数据库名:db_web,执行以下 SQL 创建用户表:

本地运行

# 启动服务(端口 30000)
mvn spring-boot:run

打包部署

# 打包
mvn clean package -DskipTests

# 上传到服务器
scp target/auth-demo-1.0.0.jar root@<服务器IP>:/opt/app.jar

# 服务器后台运行
nohup java -jar /opt/app.jar > /opt/app.log 2>&1 &

# 查看日志
tail -f /opt/app.log

# 停止服务
kill $(ps aux | grep 'app.jar' | grep -v grep | awk '{print $2}')

Nginx 反向代理(80 → 30000)

/etc/nginx/sites-enabled/defaultserver 块中添加:

location /api/ {
    proxy_pass http://localhost:30000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

重载 Nginx:

nginx -t && systemctl reload nginx

接口文档

登录

POST /api/auth/login
Content-Type: application/json

{
    "username": "admin",
    "password": "123456"
}

响应:

{
    "code": 200,
    "message": "登录成功",
    "data": {
        "token": "eyJhbGciOiJIUzI1NiJ9...",
        "username": "admin",
        "expiresIn": 86400000
    }
}

退出登录

POST /api/auth/logout
Authorization: Bearer <token>

响应:

{
    "code": 200,
    "message": "退出登录成功",
    "data": null
}

获取当前用户信息

GET /api/auth/get
Authorization: Bearer <token>

响应:

{
    "code": 200,
    "message": "获取用户信息成功",
    "data": "已认证用户"
}

配置说明

配置项说明默认值
server.port服务端口30000
jwt.secretJWT 签名密钥见 application.yml
jwt.expirationToken 有效期(毫秒)86400000(24小时)

About

No description, topics, or website provided.
Language
Java100%