案例 - 登录认证:保障系统安全访问的实现

摘要:本文介绍了为Tlias智能学习辅助系统添加登录认证功能的过程,涵盖从需求分析、接口文档设计,到思路分析、功能开发以及最后的测试等多个关键环节,旨在实现只有通过登录认证的用户才能安全访问后台系统功能的目标。

关键词 :登录认证;JWT令牌;用户验证

参考资料:黑马程序员day12 完整项目请从第10天开始看

一、引言

在完成部门管理和员工管理的基本功能后,系统存在安全隐患,即未登录状态下可直接访问后台。为解决这一问题,引入登录认证功能,确保用户必须登录后才能访问后台系统功能。

二、登录功能

2.1 需求

用户在登录界面输入用户名和密码,点击"登录"按钮后,系统向服务器发送请求。服务器需判断用户输入的用户名和密码是否正确,若正确则返回成功结果,前端页面跳转至系统首页面。

2.2 接口文档

参照以下接口文档进行登录功能开发:

  • 基本信息
    • 请求路径:/login
    • 请求方式:POST
    • 接口描述:该接口用于员工登录Tlias智能学习辅助系统,登录成功后,系统下发JWT令牌。
  • 请求参数
    • 参数格式:application/json
    • 参数说明:
名称 类型 是否必须 备注
username string 必须 用户名
password string 必须 密码

请求数据样例:

json 复制代码
{
    "username": "jinyong",
    "password": "123456"
}
  • 响应数据
    • 参数格式:application/json
    • 参数说明:
名称 类型 是否必须 默认值 备注 其他信息
code number 必须 响应码, 1 成功 ; 0 失败
msg string 非必须 提示信息
data string 必须 返回的数据, jwt令牌

响应数据样例:

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

2.3 思路分析

登录服务端的核心逻辑为接收前端请求传递的用户名和密码,依据此在数据库中查询用户信息。若能查询到用户信息,表明用户输入的用户名和密码正确;若未查询到,则说明输入有误。

2.4 功能开发

  • 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);

    //省略其他代码...
}

2.5 测试

  1. 功能开发完成后 :启动服务,利用Postman进行测试。发起POST请求,访问http://localhost:8080/login。若Postman测试通过,表明后端登录功能基本正常。
  2. 前后端联调测试:退出系统,进入登录页面。在登录页面输入账户密码,若登录成功后能进入后台管理系统页面,则说明前后端联调成功,登录功能整体可用。
相关推荐
亚信安全官方账号26 分钟前
AISTrustOne鸿蒙版安全方案 让终端防护“内生”力量觉醒
安全·华为·harmonyos
汽车仪器仪表相关领域40 分钟前
南华 NHA-604/605 汽车排放气体测试仪:国六b全适配高精度便携检测设备
大数据·人工智能·功能测试·深度学习·安全·fpga开发·压力测试
xixixi777771 小时前
危机与防御并存:ShadowModel 供应链投毒爆发,PQC 国密融合筑牢 AI 量子安全底座
大数据·人工智能·安全·ai·供应链·后量子密码·模型投毒
wengqidaifeng1 小时前
2. OpenClaw 架构落地指南:部署、渠道集成与安全边界全解
安全·ai·架构·openclaw
网络研究院3 小时前
即将过期的安全启动证书将如何影响 Windows 设备
安全·微软·系统·漏洞·硬件
志栋智能3 小时前
超自动化安全:构建智能安全运营的神经系统
大数据·运维·网络·人工智能·安全·自动化
无风听海3 小时前
Bearer Token 权威指南:从原理到生产级安全实践
前端·javascript·安全
EasyDSS4 小时前
安全可控、全场景适配:私有化音视频系统/视频直播点播EasyDSS一站式云平台重构视频协作新模式
安全·重构·音视频
黎阳之光4 小时前
无感定位·智管全域:黎阳之光人员无感定位管理系统,重新定义安全与效率
人工智能·物联网·算法·安全·数字孪生
牛奶4 小时前
黑客是怎么看到你数据的?
前端·安全·黑客