一、登入页面表单
二、前端代码
通过调用 loginApi(this.loginForm),把vue创建的数据通过axios请求,数据传给后端
login.js文件
function loginApi(data) {
return $axios({
'url': '/employee/login',
'method': 'post',
data
})
}
前端数据
new Vue({
el: '#login-app',
data() {
return {
loginForm:{
username: 'admin',
password: '123456'
}
}
}
})
后端接收到json数据
{
"username": "admin",
"password": "123456"
}
三、后端代码
后端接收到数据进行业务处理
@Slf4j
@RestController
@RequestMapping("/employee")
public class EmployeeController {
@Autowired
private EmployeeService employeeService;
/**
* 员工登录
*将login方法注释掉,点击登入页面的登入按钮,在浏览器控制台可以看到报错请求http://localhost:8080/employee/login
*附带json参数{
* "username": "admin",
* "password": "123456"
* }
* @param request
* @param employee
* @return
*/
@PostMapping("/login")
public R<Employee> login(HttpServletRequest request,@RequestBody Employee employee){
//1、将页面提交的密码password进行md5加密处理
String password = employee.getPassword();
password = DigestUtils.md5DigestAsHex(password.getBytes());
//2、根据页面提交的用户名username查询数据库
LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Employee::getUsername,employee.getUsername());
Employee emp = employeeService.getOne(queryWrapper);
//3、如果没有查询到则返回登录失败结果
if(emp == null){
return R.error("登录失败");
}
//4、密码比对,如果不一致则返回登录失败结果
if(!emp.getPassword().equals(password)){
return R.error("登录失败");
}
//5、查看员工状态,如果为已禁用状态,则返回员工已禁用结果
if(emp.getStatus() == 0){
return R.error("账号已禁用");
}
//6、登录成功,将员工id存入Session并返回登录成功结果
request.getSession().setAttribute("employee",emp.getId());
return R.success(emp);
}
}