前言
大家好 我是歌谣 今天继续进行前后端的一个学习 目前进入的是javaweb部分 今天来聊聊登录部分和JWT验证部分的书写
用户登录loginController
package com.itheima.controller; import com.itheima.pojo.Emp; import com.itheima.pojo.Result; import com.itheima.service.EmpService; import com.itheima.utils.JwtUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import java.util.HashMap; import java.util.Map; @Slf4j @RestController public class LoginConroller { @Autowired private EmpService empService; @PostMapping("/login") public Result login(@RequestBody Emp emp) {log.info("员工登录:{}"); log.info("登录"); Emp e=empService.login(emp); //登录成功 if(e!=null){ Map<String, Object> claims=new HashMap<>(); claims.put("id",e.getId()); claims.put("name",e.getName()); claims.put("username",e.getUsername()); String jwt= JwtUtils.generateJwt(claims); return Result.success(jwt); } return e!=null?Result.success():Result.error("用户名和密码错误"); } }
EmpService
package com.itheima.service; import com.itheima.pojo.Emp; import com.itheima.pojo.PageBean; import org.springframework.stereotype.Service; import java.time.LocalDate; import java.util.List; public interface EmpService { PageBean page(Integer page, Integer pageSize, String name, Short gender, LocalDate begin,LocalDate end); void delete(List<Integer> ids); void save(Emp emp); Emp getById(Integer id); void update(Emp emp); Emp login(Emp emp); }
EmpServiceImpl实现类
package com.itheima.service.impl; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration; import com.itheima.mapper.EmpMapper; import com.itheima.pojo.Emp; import com.itheima.pojo.PageBean; import com.itheima.service.EmpService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; //@Service //public class EmpServiceImpl implements EmpService { // @Autowired // private EmpMapper empMapper; // @Override // public PageBean page(Integer page, Integer pageSize) { // Long count= empMapper.count(); // Integer start=(page-1)*pageSize; // empMapper.page(start,pageSize); // List<Emp> empList=empMapper.page(start,pageSize); // PageBean pageBean=new PageBean(count,empList); // return pageBean; // } //} @Service public class EmpServiceImpl implements EmpService { @Autowired private EmpMapper empMapper; @Override public PageBean page(Integer page, Integer pageSize, String name, Short gender, LocalDate begin, LocalDate end) { PageHelper.startPage(page,pageSize); List<Emp> empList = empMapper.list(name,gender,begin,end); Page<Emp> p= (Page<Emp>) empList; PageBean pageBean=new PageBean(p.getTotal(),p.getResult()); return pageBean; } @Override public void delete(List<Integer> ids){ empMapper.delete(ids); } @Override public void save(Emp emp) { emp.setCreateTime(LocalDateTime.now()); emp.setUpdateTime(LocalDateTime.now()); empMapper.insert(emp); } @Override public Emp getById(Integer id) { return empMapper.getById(id); } @Override public void update(Emp emp) { emp.setUpdateTime(LocalDateTime.now()); empMapper.update(emp); } @Override public Emp login(Emp emp) { return empMapper.getByUsernameAndPassword(emp); } }
EmpMapper
package com.itheima.mapper; import com.itheima.pojo.Emp; import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; import java.time.LocalDate; import java.util.List; /** * 员工管理 */ //@Mapper //public interface EmpMapper { // @Select("select count(*) from emp") // public Long count(); //@Select("select * from emp limit #{start},#{pageSize}") // public List<Emp> page(Integer start, Integer pageSize); //} @Mapper public interface EmpMapper { // @Select("select * from emp") public List<Emp> list(String name, Short gender, LocalDate begin, LocalDate end); void delete(List<Integer> ids); @Insert("insert into emp(username,name,gender,image,job,entrydate,dept_id,create_time,update_time)"+ "values(#{username},#{name},#{gender},#{image},#{job},#{entrydate},#{deptId},#{createTime},#{updateTime})") void insert(Emp emp); @Select("select * from emp where id=#{id}") Emp getById(Integer id); void update(Emp emp); @Select("select * from emp where username=#{username} and password=#{password}" ) Emp getByUsernameAndPassword(Emp emp); @Delete("delete from emp where dept_id=#{deptId}") void deleteByDeptId(Integer deptId); }