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

描述

一、解决的问题

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 依赖

 

 

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

 

    cn.dev33
    sa-token-quick-login
    1.29.0

 

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

插件

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

 


 

  审核编辑:汤梓红

 
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分