2025-06-30 19:46:57 +08:00
2025-06-30 17:48:11 +08:00
2025-06-30 19:46:57 +08:00

OpenIsle

OpenIsle 是一个基于 Spring Boot 的社区后端平台示例,提供注册、登录和基于 JWT 的认证功能,支持使用 MySQL 作为数据库,并通过 Resend API 发送注册邮件。

功能特性

  • 注册/登录:用户可以注册并登录,密码使用 BCrypt 加密保存。
  • JWT 认证:登录成功后返回 JWT后续请求需在 Authorization 头中携带 Bearer token。
  • 邮件通知:示例通过 Resend API 发送欢迎邮件,可根据需要修改。
  • 灵活配置数据库地址、账户密码、Resend API Key 等均可通过环境变量或 application.properties 配置。
  • 角色权限:内置 ADMINUSER 两种角色,/api/admin/** 接口仅管理员可访问。
  • 文章/评论:支持发表文章并在文章下发布评论,评论可多级回复。

快速开始

环境准备

  • Java 17+
  • Maven 3+
  • MySQL 数据库

构建与运行

  1. 修改 src/main/resources/application.properties,或通过环境变量配置:

    • MYSQL_URL:数据库连接 URL例如 jdbc:mysql://localhost:3306/openisle
    • MYSQL_USER:数据库用户名。
    • MYSQL_PASSWORD:数据库密码。
    • RESEND_API_KEYResend 邮件服务 API Key。
    • JWT_SECRETJWT 签名密钥。
    • JWT_EXPIRATIONJWT 过期时间(毫秒)。
  2. 构建并运行:

mvn spring-boot:run

启动后访问:

  • POST /api/auth/register:注册新用户,参数示例:
    {
      "username": "test",
      "email": "test@example.com",
      "password": "password"
    }
    
  • POST /api/auth/login:登录,返回 { "token": "..." }
  • 其他受保护接口示例:GET /api/hello,需在请求头加入 Authorization: Bearer <token>
  • 管理员接口示例:GET /api/admin/hello,需要具备 ADMIN 角色。

目录结构

src/main/java/com/openisle
├── OpenIsleApplication.java    // 应用入口
├── config                      // Spring Security 配置
├── controller                  // 控制器
├── model                       // 数据模型
├── repository                  // 数据访问层
└── service                     // 业务逻辑

许可

本项目使用 MIT License可自由修改和分发。

Description
完全开源的社区平台
Readme MIT 58 MiB
Languages
Java 52.9%
Vue 34.1%
JavaScript 5.5%
Python 4.1%
TypeScript 2.1%
Other 1.3%