首页 > 其他分享 >SpringBoot 使用 Sa-Token-Quick-Login 插件实现快速登录认证

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

时间:2023-01-09 16:11:59浏览次数:64  
标签:插件 SpringBoot 登录 test Token Quick Sa 页面

原文链接:  https://mp.weixin.qq.com/s/XxXVCFBoK7AjGznW5tzl7w  

 

一、解决的问题

 

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

 

 

返回正常

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

 

 

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

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

 

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

 

 

 

 

 

 

 

 

 

 

 

 

标签:插件,SpringBoot,登录,test,Token,Quick,Sa,页面
From: https://www.cnblogs.com/tuxiaoer/p/17037283.html

相关文章

  • 聊聊Cookie、Session、Token 背后的故事
    摘要:Cookie、Session、Token这三者是不同发展阶段的产物本文分享自华为云社区《​​Cookie、Session、Token背后的故事​​》,作者:龙哥手记。1.网站交互体验升级作为网友......
  • 推荐10个强大的谷歌插件,程序猿必备!不看后悔系列!
      相信经常在网上"冲浪"的程序猿们一定都知道,哪一款浏览器用的人最多。毫无疑问,谷歌浏览器由于其稳定,高效,简洁的特点已经俘获了大批用户的芳心。另外,谷歌浏览器相较于......
  • 聊聊Cookie、Session、Token 背后的故事
    摘要:Cookie、Session、Token这三者是不同发展阶段的产物本文分享自华为云社区《Cookie、Session、Token背后的故事》,作者:龙哥手记。1.网站交互体验升级作为网友的我......
  • hello_springboot_IDEA创建
    步骤我的jdk版本是1.8总之是因为创建第一个springboot程序报了很多次错,就比如无效的目标发行版:17和java:无法访问org.springframework.web.bind.annotation.Ge......
  • FlashDevelop专用swc导出插件
     主页:​​http://sourceforge.net/projects/exportswc/​​ 下载:见附件 双击安装之后重启fd即可。   ......
  • Springboot设置定时任务,从数据库中获取cron表达式 DEMO
    适用场景:需要在项目运行时改动定时任务执行时间,可将cron表达式放在缓存或者数据库中代码如下:(省略了获取cron的方法,需要自己根据情况获取) importorg.springframework.......
  • 017 跨域问题-从springboot后台解决
    解决跨域问题:创建对应的包packagecom.example.adminspringboot.config;importorg.springframework.context.annotation.Bean;importorg.springframework.context.anno......
  • 新建springboot项目步骤
    1、file->new->project->springinitializr    打开pom.xml,换成ali源,快一些<repositories><repository><id>aliyun-repos</id>......
  • Springboot 非Web项目设置
    1使用场景有一个项目需要监听一个端口获取数据,这时候就不需要启动web环境了。但是又希望可以用Springboot比较方便。2具体实现在配置文件中加入:点击查看代码spr......
  • SpringBoot主键回显
    1、背景:在向数据库插入数据时,在主键自增时不需要主键字段,但是接下来还需主键进行其它操作2、实现:实体类:publicclassUser{privateintuserId;privateStr......