SpringBoot 登录认证(一)

SpringBoot 登录认证(一)-CSDN博客

SpringBoot 登录认证(二)-CSDN博客

SpringBoot登录校验(三)-CSDN博客

本节实现基础的登录认证功能,只进行数据库的判断。这种方法有一个巨大的问题是用户如果访问系统的其他功能,系统不会识别出用户是未登录的,即界面并不会自动跳转到登录界面

接口文档

我们参照接口文档来开发登录功能

  • 基本信息

    请求路径:/login ​ 
    请求方式:POST ​ 
    接口描述:该接口用于员工登录Tlias智能学习辅助系统,登录完毕后,系统下发JWT令牌。 
    
  • 请求参数

    参数格式:application/json

    参数说明:

    名称 类型 是否必须 备注
    username string 必须 用户名
    password string 必须 密码

    请求数据样例:

    {
        "username": "jinyong",
        "password": "123456"
    }

  • 响应数据

    参数格式:application/json

    参数说明:

    名称 类型 是否必须 默认值 备注 其他信息
    code number 必须 响应码, 1 成功 ; 0 失败
    msg string 非必须 提示信息
    data string 必须 返回的数据 , jwt令牌

    响应数据样例:

    {
      "code": 1,
      "msg": "success",
      "data": "eyJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoi6YeR5bq4IiwiaWQiOjEsInVzZXJuYW1lIjoiamlueW9uZyIsImV4cCI6MTY2MjIwNzA0OH0.KkUc_CXJZJ8Dd063eImx4H9Ojfrr6XMJ-yVzaWCVZCo"
    }

实现思路


  

 注意事项:

  1. 需要新定义一个LoginController
  2. post类型的请求,要用@RequestBody将客户端传送的Json数据封装到类中
  3. 客户端发送的Json数据包括username和password,所以可以使用Emp员工类封装
  4. 无需新定义Service和Mapper,因为本质还是查询员工的信息

实现代码

LoginController:

@Slf4j
@RestController
public class LoginController {

    @Autowired
    private EmpService empService;

    @PostMapping("/login")
    //注意用@RequestBody将Json数据映射到封装类中
    public Result login(@RequestBody Emp emp){
        log.info("登录注册");
        //查询返回的是一条员工信息,即一个员工对象
        Emp e = empService.login(emp);
        return Result.success(e);
    }

}

EmpServiceImpl:

 @Override
    public Emp login(Emp emp) {
        Emp e = empMapper.getByUsernameAndPassword(emp);
        return e;
    }

EmpMapper:

     /**
     * 根据用户名和密码查询员工信息
     * @param emp
     * @return
     */
    @Select("select * from emp where username = #{username} and password = #{password}")
    Emp getByUsernameAndPassword(Emp emp);

Postman测试(Json格式)

需要选中raw 

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-29 22:54:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-29 22:54:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-29 22:54:02       82 阅读
  4. Python语言-面向对象

    2024-03-29 22:54:02       91 阅读

热门阅读

  1. [c++]类和对象常见题目详解

    2024-03-29 22:54:02       41 阅读
  2. MySQL新建用户并授权、删除用户、修改用户名

    2024-03-29 22:54:02       42 阅读
  3. 大数据导论-大数据可视化——沐雨先生

    2024-03-29 22:54:02       41 阅读
  4. python编程入门

    2024-03-29 22:54:02       33 阅读
  5. 面试——深度分页问题的优化

    2024-03-29 22:54:02       40 阅读
  6. python报错unable to rollback pymysql

    2024-03-29 22:54:02       41 阅读
  7. mysql一些常用查询语句

    2024-03-29 22:54:02       39 阅读
  8. mysql03-内外连接

    2024-03-29 22:54:02       39 阅读
  9. docker 共享内存不足问题

    2024-03-29 22:54:02       28 阅读
  10. Python100个库分享第1个—Chardet

    2024-03-29 22:54:02       39 阅读
  11. Ubuntu 的cuda更新

    2024-03-29 22:54:02       38 阅读
  12. 【python学习】基础篇-命名规范

    2024-03-29 22:54:02       41 阅读