SpringBoot 使用 Sa-Token-Quick-Login 插件实现快速登录认证

Java专栏

共 8533字,需浏览 18分钟

 · 2023-01-09


胖虎和朋友原创的视频教程有兴趣的可以看看:


👏2023 最新,Java成神之路,架构视频(点击查看)


😉超全技术栈的Java入门+进阶+实战!(点击查看)


来源:lizhou.blog.csdn.net/article/details/123571910


# 解决的问题


Sa-Token-Quick-Login 可以为一个系统快速的、零代码 注入一个登录页面


试想一下,假如我们开发了一个非常简单的小系统,比如说:服务器性能监控页面, 我们将它部署在服务器上,通过访问这个页面,我们可以随时了解服务器性能信息,非常方便


然而,这个页面方便我们的同时,也方便了一些不法的攻击者,由于这个页面毫无防护的暴露在公网中,任何一台安装了浏览器的电脑都可以随时访问它!


为此,我们必须给这个系统加上一个登录认证,只有知晓了后台密码的人员才可以进行访问


细细想来,完成这个功能你需要:


  • 编写前端登录页面,手写各种表单样式
  • 寻找合适的ajax类库,jQuery?Axios?还是直接前后台不分离?
  • 寻找合适的模板引擎,比如jsp、Thymeleaf、FreeMarker、Velocity……选哪个呢?
  • 处理后台各种拦截认证逻辑,前后台接口对接
  • 你可能还会遇到令人头痛欲裂的模板引擎中ContextPath处理
  • ……


你马上就会发现,写个监控页你一下午就可以搞定,然而这个登录页你却可能需要花上两三天的时间,这是一笔非常不划算的时间浪费


那么现在你可能就会有个疑问,难道就没有什么方法给我的小项目快速增加一个登录功能吗?


Sa-Token-Quick-Login便是为了解决这个问题!官方文档地址:

  • https://sa-token.cc/doc.html#/plugin/quick-login


# 与 SpringBoot 整合


1、引入 maven 依赖

          
            
              <!-- web支持 -->
            
          
          
            
              <dependency>
            
          
          
                <groupId>org.springframework.boot</groupId>
          
          
                <artifactId>spring-boot-starter-web</artifactId>
          
          
            
              </dependency>
            
          
          
            
              <!-- Sa-Token-Quick-Login 插件 -->
            
          
          
            
              <dependency>
            
          
          
                <groupId>cn.dev33</groupId>
          
          
                <artifactId>sa-token-quick-login</artifactId>
          
          
                <version>1.29.0</version>
          
          
            
              </dependency>
            
          
        
      
    

2、配置参数

          
            server:
          
          
              port: 8080
          
          
            
              
# Sa-Token-Quick-Login 配置 sa: # 登录账号 name: admin # 登录密码 pwd: 123456 # 是否自动随机生成账号密码 (此项为true时, name与pwd失效) auto: false # 是否开启全局认证(关闭后将不再强行拦截) auth: true # 登录页标题 title: Asurplus 登录 # 是否显示底部版权信息 copr: true # 指定拦截路径 include: /** # 指定排除路径 exclude: /test
      
        

# 测试


1、编写一个 controller

          
            import org.springframework.web.bind.annotation.GetMapping;
          
          
            import org.springframework.web.bind.annotation.RestController;
          
          
            
              
@RestController public class TestController {
/** * 不需要认证 * * @return */ @GetMapping("test") public String test() { return "test"; }
/** * 需要认证 * * @return */ @GetMapping("test1") public String test1() { return "test1"; } }
      
        

2、访问 http://localhost:8080/test


e89605d368a63b497cab169a2ec874d2.webp

返回正常


3、访问 http://localhost:8080/test1


03562ce8b216e523e66ee49fe0554313.webp


由于没有登录,被拦截了,到了登录页面


4、输入我们配置的用户密码:admin、123456


a20b8016b84dbe83f37373c7a736fb90.webp

登录过后,正常返回了响应数据



      
        
          
                

胖虎联合两位大佬朋友,一位是知名培训机构讲师和科大讯飞架构,联合打造了 《Java架构师成长之路》 的视频教程。完全对标外面2万左右的培训课程。

除了基本的视频教程之外,还提供了超详细的课堂笔记,以及源码等资料包..


课程阶段:

  1. Java核心 提升阅读源码的内功心法

  2. 深入讲解企业开发必备技术栈,夯实基础,为跳槽加薪增加筹码

  3. 分布式架构设计方法论。为学习分布式微服务做铺垫

  4. 学习NetFilx公司产品,如Eureka、Hystrix、Zuul、Feign、Ribbon等,以及学习Spring Cloud Alibabba体系

  5. 微服务架构下的性能优化

  6. 中间件源码剖析

  7. 元原生以及虚拟化技术

  8. 从0开始,项目实战 SpringCloud Alibaba电商项目

点击下方超链接查看详情 5e979e78bfdb07a2c6ac22f8663e96a6.webp5e979e78bfdb07a2c6ac22f8663e96a6.webp5e979e78bfdb07a2c6ac22f8663e96a6.webp(或者点击文末阅读原文):

(点击查看)  2023年,最新Java架构师成长之路 视频教程!

以下是课程大纲,大家可以双击打开原图查看

9527883a37b8e0f35a82a65d7bc88d25.webp

浏览 40
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报