JavaWeb实现登录验证

一、简介
当我们在网页中浏览的时候通常会先进行登录验证,当登录成功后可以正常访问网页.如果别人想要访问网站,通过直接复制地址的方式访问时也需要登录,这种功能的实现就是登录验证.

二、JWT令牌技术
全称:JSON Web Token
定义了一种简洁的、自包含的格式,用于在通信双方以json数据格式安全的传输信息。由于数字签名的存在,这些信息是可靠的。
组成:
第一部分:Header(头),记录令牌类型、签名算法等。例如:{"alg":"HS256","type":"JWT"}
第二部分:Payload(有效载荷),携带一些自定义信息、默认信息等。例如:{"id":"1","username":"Tom"}
第三部分:Signature(签名),防止Token被簒改、确保安全性。将header、payload,并加入指定秘钥,通过指定签名算法计算而来。

实现方式:

当用户登录成功后后端会返回一个token给前端,用户进行操作的时候会携带token,每次进行一个操作都会进行验证,如果有令牌则可以继续访问,如果没有令牌则需要进行登录

//登录
    @PostMapping("login")
    public Result login(@RequestBody Map map) {
        String username = map.get("username");
        String password = map.get("password");
        Emp emp = empService.login(username, password);
        //校验
        if (emp != null) {
            //查询到了,登录成功,生成token
            //1.创建加密内容
            HashMap hashMap = new HashMap<>();
            hashMap.put("id", emp.getId());
            hashMap.put("username", emp.getUsername());
            //2.生成tokne
            String token = JwtUtils.generateJwt(hashMap);
            //3.返回前端
            return Result.success(token);
        } else {
            return Result.error("用户名或密码错误");
        }
    }

二、拦截器Interceptor

概念:是一种动态拦截方法调用的机制,类似于过滤器。Spring框架中提供的,用来动态拦截控制器方法的执行。
作用:拦截请求,在指定的方法调用前后,根据业务需要执行预先设定的代码。

你可能感兴趣的:(java)