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

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

首先导入sa token的Maven依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.3.3.RELEASE</version>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId><version>2.3.3.RELEASE</version>
</dependency>
<dependency><groupId>cn.dev33</groupId><artifactId>sa-token-spring-boot-starter</artifactId><version>1.26.0</version>
</dependency>

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

server:port: 8080
spring:application:name: sa-simple-auththymeleaf:cache: false
sa-token:token-name: satokentimeout: -1token-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

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>login</title><link type="text/css" rel="stylesheet" th:href="@{/css/login.css}"/>
</head>
<body>
<form id="login-form" th:action="@{/doLogin}" method="post"><div><label>用户名:</label><input name="username"/></div><div><label>密  码:</label><input name="password" type="password"/></div><div><button type="submit">登录</button></div>
</form>
</body>
</html>

home.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>主页</title>
</head>
<body>
<h3>主页</h3>
<p>欢迎!<span th:text="${loginId}"></span></p>
<a th:href="@{/doLogout}">退出</a>
</body>
</html>

loginFailed.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>登录失败</title>
</head>
<body>
登录失败! <a th:href="@{/login}">登录</a>
</body>
</html>

loginSucceed.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>登录成功</title>
</head>
<body>
登录成功! <br/>
<a th:href="@{/home}">进入主页</a>&nbsp;|&nbsp;<a th:href="@{/doLogout}">退出</a>
</body>
</html>

Sa-Token简单登录认证相关推荐

  1. 【快速简单登录认证】SpringBoot使用Sa-Token-Quick-Login插件快速登录认证

    一.解决的问题 Sa-Token-Quick-Login 可以为一个系统快速的.零代码 注入一个登录页面 试想一下,假如我们开发了一个非常简单的小系统,比如说:服务器性能监控页面, 我们将它部署在服务 ...

  2. 用JS+HTML结合ASP.NET Core Web API给ASP.NET写一个基于Token的登录认证功能

    之前一篇博客讲了如何使用ASP.NET Core WebAPI进行Jwt的登录认证,那么这个接口的认证如何结合登录呢?原来的系统前台页面是用的ASP.NET,基本可以看作是静态的页面,而且原来的asp ...

  3. 菜鸟学习shiro之入门的简单登录认证和身份认证1

    最近学习了四郎,学的是天南海北,一头雾水,概念懂了,实践呐,就很是缺乏,于是跟着慕课网的视频教程敲敲代码 果然加深了理解,话不多说,直接看代码 Maven的依赖: <dependencies&g ...

  4. 详解比springSecurity和shiro更简单优雅的轻量级Sa-Token框架,比如登录认证,权限认证,单点登录,OAuth2.0,分布式Session会话,微服务网关鉴权

    文章目录 1. 技术选型 2. Sa-Token概述 2.1 简单介绍 2.2 登录认证 2.3 权限认证 3. 功能一览 4. Sa-Token使用 4.1 引入Sa-Token依赖 4.2 Sa- ...

  5. json web token没有哪个成分_【分享项目】给你看看我们公司的登录认证是怎么做的?!(SpringBoot+Shiro+Token+Redis)...

    背景交代 以前项目中权限认证没有使用安全框架,都是在自定义filter中判断是否登录以及用户是否有操作权限的.最近开了新项目,搭架子时,想到使用安全框架来解决认证问题,spring security太 ...

  6. java用户的登录图片_Java 如何用 token 做用户登录认证

    1.什么是 token??? Token 是服务端生成的一串字符串,以作客户端进行请求的一个令牌. 2.token 做用户登录认证 ● 流程 3. Java 实现 ● 用户登录生成 token,保存到 ...

  7. 基于Token的WEB后台登录认证机制(并讲解其他认证机制以及cookie和session机制)

    几种常用的认证机制 HTTP Basic Auth HTTP Basic Auth简单点说明就是每次请求API时都提供用户的username和password,简言之,Basic Auth是配合RES ...

  8. java+登录window域认证网页_Java 如何用 token 做用户登录认证

    1.什么是 token??? Token 是服务端生成的一串字符串,以作客户端进行请求的一个令牌. 2.token 做用户登录认证 ● 流程 3. Java 实现 ● 用户登录生成 token,保存到 ...

  9. java 用户登录token_Java,SpringBoot采用token方式实现登录认证

    IT小奋斗2021-01-13 21:48:33 Token,令牌,访问资源的凭证,每次访问带上这个令牌,就可识别出用户身份. JWT (JsonWebToken),是实现token技术的一种解决方案 ...

最新文章

  1. android中有关invisible,visible,gone的区别
  2. 华为mate 20pro升级鸿蒙,华为放大招!华为Mate20系列也能拍月亮,以后还能升级鸿蒙...
  3. python变量详解_Python 变量详解[学习 Python 必备基础知识][看此一篇就够了]
  4. python-logging用法
  5. Android NFC 开发实例
  6. tt服务器系统,tt服务器
  7. java 线程池数量_java线程池及创建多少线程合适
  8. 微金融php源码下载,ThinkPHP金融微盘微交易系统平台源码
  9. 查看端口占用情况lsof,并关闭对应进程kill
  10. Linux下搭建Java环境
  11. 小米 11 不送充电器;苹果已修复 iCloud 登录激活问题;Ruby 3.0.0 发布|极客头条...
  12. 为archlinux选择国内镜像
  13. java -jar命令
  14. linux php 扩展包 下载地址
  15. 抽签小程序,妈妈再也不用担心谁洗碗(分配任务)了,so easy
  16. 虚拟服务器搭建棋牌,棋牌开源游戏服务器框架
  17. 维护最短路径条数和途径点的权值累加
  18. 两块同步FIFO实现乒乓操作
  19. rc4加密问题漏洞修复_服务器SSL不安全漏洞修复方案
  20. OPPOReno4SE和华为畅享20 哪款好

热门文章

  1. 1200v驱动IC比亚迪 IGBT驱动IC解决方案
  2. 如何查看ocp证书(hands on)的状态以及尽快督促oracle完成审核并且快速发证
  3. c语言与python的语法区别_来自python的C语言(基本语法),从,Python,看,基础,篇
  4. MATLAB代码:考虑绿证交易和综合需求响应的综合能源系统优化调度
  5. 你不知道的javascript上卷
  6. python安装解决Apply complete, result: 0x80070001, restart: None, ba requested restart: No
  7. pytoch中class定义神经网络的参数保存与加载
  8. HPE: smart storage: hpssacli:
  9. Git 与 SVN 区别
  10. 惠普服务器ssa找不到控制卡,惠普ssacli工具使用