支持两种登录方式:
- ✅ 账号 + 密码
- ✅ 手机号 + 密码
ISysUserService.javajava public SysUser selectUserByPhonenumber(String phonenumber);
UserDetailsServiceImpl.java - loadUserByUsername 方法java // 手机号格式:1[3-9]\d{9} if (username.matches("^1[3-9]\\d{9}$")) { user = userService.selectUserByPhonenumber(username); } else { user = userService.selectUserByUserName(username); }
SysLoginService.java - loginPreCheck 方法java boolean isPhoneLogin = username.matches("^1[3-9]\\d{9}$"); // 仅对非手机号登录校验用户名长度 if (!isPhoneLogin) { // 校验用户名长度 }
| 文件 | 修改内容 |
|---|---|
ISysUserService.java |
新增 selectUserByPhonenumber 接口 |
SysUserServiceImpl.java |
实现 selectUserByPhonenumber 方法 |
UserDetailsServiceImpl.java |
增加手机号/账号自动识别 |
SysLoginService.java |
优化登录前置校验 |
前端无需修改,直接传递用户输入:
// 账号登录
login({ username: "admin", password: "admin123" })
// 手机号登录
login({ username: "13800138000", password: "password123" })
| 输入示例 | 识别为 | 查询方式 |
|---|---|---|
| admin | 账号 | selectUserByUserName |
| 13800138000 | 手机号 | selectUserByPhonenumber |
| test001 | 账号 | selectUserByUserName |
| 19912345678 | 手机号 | selectUserByPhonenumber |