SpringBoot+Mybatis 登录认证功能实现
SpringBoot+Mybatis 登录认证功能实现笔记
一、需求分析
核心目标:实现基于用户名密码的登录认证,保护系统后台安全。
功能要点:
- ✅ 用户输入用户名密码后验证
- ✅ 验证成功:返回用户信息并跳转首页
- ✅ 验证失败:提示错误信息
二、技术实现方案
1. 数据库设计
使用已有员工表emp作为认证数据源:
1 | CREATE TABLE emp ( |
2. 核心代码实现
2.1 实体类封装
1 |
|
2.2 Controller层
1 |
|
2.3 Service层
1 |
|
2.4 Mapper层
1 |
|
三、关键点说明
安全增强建议:
- 🔒 密码应MD5加密存储(示例中为明文,实际项目需加密)
- 🛡️ 增加验证码防止暴力破解
- ⏱️ 使用JWT替代简单token实现无状态认证
接口规范:
- 请求方式:
POST /login - 请求参数:
{"username":"admin", "password":"123456"} - 成功响应:
1
2
3
4
5
6
7
8
9
10{
"code": 1,
"msg": "success",
"data": {
"id": 1,
"username": "admin",
"name": "管理员",
"token": "..."
}
}
- 请求方式:
四、测试验证
测试用例
| 测试场景 | 预期结果 |
|---|---|
| 正确用户名密码 | 返回200,包含用户信息 |
| 错误密码 | 返回错误提示 |
| 不存在的用户名 | 返回错误提示 |
API测试示例
1 | POST http://localhost:8080/login |
五、扩展思考
- 会话管理:当前实现是简单认证,后续可引入:
- Spring Security框架
- Redis存储会话信息
- 密码安全:
1
2// 实际存储应加密
password = DigestUtils.md5Hex(password + salt); - 日志审计:记录登录操作日志
六、总结
通过本次开发,我们实现了:
- 基本的用户名密码认证流程
- RESTful风格的登录接口
- 前后端分离的数据交互
重点注意:当前实现是基础版本,生产环境需要加强安全措施!
```
-
感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Gavin的博客