欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

使用JWT和验证码进行安全验证及授权功能的实践与测试

最编程 2024-07-28 11:58:46
...

1、当验证码错误时
在这里插入图片描述

2、验证码、密码正确时(没有携带jwt登录)
在这里插入图片描述
此时会返回token
在这里插入图片描述

3、携带jwt请求后端接口

@RestController
@RequestMapping("/test")
public class TestController {
    @Autowired
    SysUserService sysUserService;

    @GetMapping
    @PreAuthorize("hasRole('admin')")
    public Object test(){
        return Result.success(sysUserService.list());
    }
}

/test接口需要用户具备admin角色,此处登录的用户具有该角色,则访问成功。
在这里插入图片描述
4、对于需要某种权限或者角色才能访问的后端接口只需要在节后上面进行设置

(1)需要权限才能访问

//新增
    @PostMapping("/save")
    @PreAuthorize("hasAuthority('sys:role:save')")
    public Result save(@Validated @RequestBody SysRole sysRole){
        //添加时设置create时间
        sysRole.setCreated(LocalDateTime.now());
        sysRole.setStatu(Const.STATUS_ON);
        sysRoleService.save(sysRole);
        return Result.success(sysRole);
    }

(2)需要用于某种角色才可以访问

@RestController
@RequestMapping("/test")
public class TestController {
    @Autowired
    SysUserService sysUserService;

    @GetMapping
    @PreAuthorize("hasRole('admin')")
    public Object test(){
        return Result.success(sysUserService.list());
    }
}

此处登录的用户不具备该角色,所以会走权限不足过滤器
在这里插入图片描述

推荐阅读