【JavaWeb】Day62.SpringBootWeb案例——基础登录功能

登录功能

需求

在登录界面中,我们可以输入用户的用户名以及密码,然后点击 "登录" 按钮就要请求服务器,服务端判断用户输入的用户名或者密码是否正确。如果正确,则返回成功结果,前端跳转至系统首页面。

接口文档

基本信息

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

请求参数

  • 参数格式:application/json
  • 参数说明:
  • 请求数据样例:

    json 复制代码
      {
      	"username": "jinyong",
          "password": "123456"
      }
      ~~~

响应数据

  • 参数格式:application/json
  • 参数说明:
  • 响应数据样例:

    json 复制代码
      {
        "code": 1,
        "msg": "success",
        "data": "eyJhbGciOiJIUzI1NiJ9.eyJuYW1lIjoi6YeR5bq4IiwiaWQiOjEsInVzZXJuYW1lIjoiamlueW9uZyIsImV4cCI6MTY2MjIwNzA0OH0.KkUc_CXJZJ8Dd063eImx4H9Ojfrr6XMJ-yVzaWCVZCo"
      }
      ~~~

思路分析

登录服务端的核心逻辑就是:接收前端请求传递的用户名和密码 ,然后再根据用户名和密码查询用户信息,如果用户信息存在,则说明用户输入的用户名和密码正确。如果查询到的用户不存在,则说明用户输入的用户名和密码错误。

功能开发

LoginController

复制代码
~~~java
@RestController
public class LoginController {

    @Autowired
    private EmpService empService;

    @PostMapping("/login")
    public Result login(@RequestBody Emp emp){
        Emp e = empService.login(emp);
	    return  e != null ? Result.success():Result.error("用户名或密码错误");
    }
}

EmpService

复制代码
~~~java
public interface EmpService {

    /**
     * 用户登录
     * @param emp
     * @return
     */
    public Emp login(Emp emp);
}
~~~

EmpServiceImpl

复制代码
~~~java
@Slf4j
@Service
public class EmpServiceImpl implements EmpService {
    @Autowired
    private EmpMapper empMapper;

    @Override
    public Emp login(Emp emp) {
        //调用dao层功能:登录
        Emp loginEmp = empMapper.getByUsernameAndPassword(emp);

        //返回查询结果给Controller
        return loginEmp;
    }   
 
}
~~~

EmpMapper

复制代码
~~~java
@Mapper
public interface EmpMapper {

    @Select("select id, username, password, name, gender, image, job, entrydate, dept_id, create_time, update_time " +
            "from emp " +
            "where username=#{username} and password =#{password}")
    public Emp getByUsernameAndPassword(Emp emp);

}
~~~

测试

功能开发完毕后,我们就可以启动服务,打开postman进行测试了。

发起POST请求,访问:http://localhost:8080/login

相关推荐
for_ever_love__5 分钟前
爬虫项目: 获取高分电影的数据总结
开发语言·python·学习
文人sec6 分钟前
MYSQL:insert...select:为什么锁源表的所有行和间隙?怎么最快地复制一张表?
数据库·python·mysql
weixin_3077791310 分钟前
C++代码实现MATLAB中的ode23t函数功能
开发语言·c++·算法·matlab
SamChan9030 分钟前
PyMuPDF vs pdfplumber vs pypdf:PDF 文本提取实测对比(翻译预处理视角)
python·ai·pdf
君顾131 分钟前
24小时自助健身房系统开发实战与完整指南
java·开发语言·健身房
辰辉创聚1 小时前
炎症与免疫相关细胞因子:信号通路、分类及科研检测应用
python·oracle·nycodenz·重组il-6蛋白·抗tnf-α抗体·il-1β蛋白
ai小陈1 小时前
LTX2.5音视频生成任务验收实战:批量记录与音画质量检查
人工智能·python·深度学习·ai·音视频·gpu算力
今儿敲了吗1 小时前
04英文文本关键词提取(TF-IDF)
笔记·python
syagain_zsx1 小时前
算法基础篇 · 02 高精度(C++ 题解)
开发语言·c++·学习·高精度
白远山1 小时前
无人自助健身平台搭建:从架构设计到设备联动的完整实战
java·开发语言·架构·需求分析