Sa-Token简单登录认证

sa token是一个全新的权限框架,相比spring security和apache shiro来说,使用起来更加便捷,配置更少,侵入性更小。

下面是一个简单的登录认证示例,以一个spring boot+thymeleaf来实现具体逻辑

首先导入sa token的Maven依赖


    org.springframework.boot
    spring-boot-starter-web
    2.3.3.RELEASE


    org.springframework.boot
    spring-boot-starter-thymeleaf
    2.3.3.RELEASE


    cn.dev33
    sa-token-spring-boot-starter
    1.26.0

配置文件application.yml,更多的sa token配置请参考Sa-Token

server:
  port: 8080
spring:
  application:
    name: sa-simple-auth
  thymeleaf:
    cache: false
sa-token:
  token-name: satoken
  timeout: -1
  token-style: simple-uuid

spring boot启动类

@SpringBootApplication
@Slf4j
public class SaTokenAuthenticationExampleApp {
    public static void main(String[] args) {
        SpringApplication.run(SaTokenAuthenticationExampleApp.class, args);
        log.info("Sa-Token配置:{}", SaManager.getConfig());
    }
}

业务逻辑控制器,具体的逻辑非常简单,doLogin方法验证登录页输入的用户名和密码,成功直接调用sa token的工具方法StpUtil.login(用户ID)登录 ,并跳转到登录成功页;失败则跳转到失败页面。

@Controller
public class SimpleAuthenticateController {

    @GetMapping("/home")
    public String home(Model model){
        if(StpUtil.isLogin()){
            model.addAttribute("loginId", StpUtil.getLoginId());
            return "home";
        }
        return "redirect:/login";
    }

    @GetMapping("/login")
    public String login(){
        return "login";
    }

    @PostMapping("/doLogin")
    public String doLogin(String username, String password){
        if("admin".equals(username) && "123456".equals(password)){
            StpUtil.login(10001);
            return "loginSucceed";
        }
        return "loginFailed";
    }

    @GetMapping("/doLogout")
    public String doLogout(){
        StpUtil.logoutByLoginId(10001);
        return "redirect:/login";
    }
}

login.html




    
    login
    


home.html




    
    主页


主页

欢迎!

退出

loginFailed.html




    
    登录失败


登录失败! 登录

loginSucceed.html




    
    登录成功


登录成功! 
进入主页 | 退出

Sa-Token简单登录认证_第1张图片

 Sa-Token简单登录认证_第2张图片

 Sa-Token简单登录认证_第3张图片

Sa-Token简单登录认证_第4张图片 

 

你可能感兴趣的:(Java编程,java,spring,spring,boot)