不想写代码,但想要集成一个登录页面?Sa-Token-Quick-Login 帮你实现!

简介: 只想快速挂一个可用登录页,不想自己写前端?本文介绍 Sa-Token-Quick-Login:引入依赖后即可获得开箱即用的登录界面与基础鉴权能力,适合演示项目、后台管理与快速原型,把时间留给真正的业务功能,也能先把登录链路跑通再迭代,文内含示例,可直接对照实践。

一、解决什么问题

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

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

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

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

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

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

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

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

Sa-Token-Quick-Login便是为了解决这个问题!

Sa-Token 是一个开源、免费、一站式 java 权限认证框架。可解决:登录认证、权限认证、微服务网关鉴权、SSO 单点登录、OAuth2 统一认证、jwt 集成、API 参数签名、API Key 授权 等一系列权限相关问题。

二、适用场景

Sa-Token-Quick-Login 旨在用最小的成本为项目增加一个登录认证功能

  • 简单:只需要引入一个依赖便可为系统注入登录功能,快速、简单、零代码!
  • 不可定制:由于登录页面不可定制,所以Sa-Token-Quick-Login非常不适合普通项目的登录认证模块,STQL也无意去解决所有项目的登录认证模块

Sa-Token-Quick-Login的定位是这样的场景:你的项目需要一个登录认证功能、这个认证页面可以不华丽、可以烂,但是一定要有,同时你又不想花费太多的时间浪费在登录页面上,
那么你便可以尝试一下Sa-Token-Quick-Login

三、集成步骤

首先我们需要创建一个SpringBoot的demo项目,比如:sa-token-demo-quick-login

1、添加pom依赖

<!-- Sa-Token 权限认证, 在线文档:https://sa-token.com -->
<dependency>
    <groupId>cn.dev33</groupId>
    <artifactId>sa-token-spring-boot-starter</artifactId>
    <version>1.46.0</version>
</dependency>

<!-- Sa-Token-Quick-Login 插件依赖 -->
<dependency>
    <groupId>cn.dev33</groupId>
    <artifactId>sa-token-quick-login</artifactId>
    <version>1.46.0</version>
</dependency>

Gradle 方式:

// Sa-Token 权限认证,在线文档:https://sa-token.com
implementation 'cn.dev33:sa-token-spring-boot-starter:1.46.0'

// Sa-Token-Quick-Login 插件
implementation 'cn.dev33:sa-token-quick-login:1.46.0'

注:SpringBoot 3.x 请改用 sa-token-spring-boot3-starter,SpringBoot 4.x 请改用 sa-token-spring-boot4-starter。sa-token-quick-login 插件本身不用换。

2、启动类

@SpringBootApplication
public class SaTokenQuickDemoApplication {
   
    public static void main(String[] args) {
   
        SpringApplication.run(SaTokenQuickDemoApplication.class, args);
    }
}

启动成功后,可以用 CommandLineRunner 把默认账号密码打印到控制台,方便测试:

@Component
public class SaQuickStartup implements CommandLineRunner {
   

    @Value("${server.port:8080}")
    private String port;

    @Override
    public void run(String... args) {
   
        System.out.println("\n------ 启动成功 ------");
        System.out.println("home: http://localhost:" + port);
        System.out.println("name: " + SaQuickManager.getConfig().getName());
        System.out.println("pwd:  " + SaQuickManager.getConfig().getPwd());
    }
}

3、新建测试Controller

/**
 * 测试专用Controller 
 */
@RestController
public class TestController {
   
    // 浏览器访问测试: http://localhost:8081
    @RequestMapping("/")
    public String index() {
   
        String str = "<br />"
                + "<h1 style='text-align: center;'>资源页 (登录后才可进入本页面) </h1>"
                + "<hr/>"
                + "<p style='text-align: center;'> Sa-Token " + SaTokenConsts.VERSION_NO + " </p>";
        return str;
    }
}

注:示例源码在官方仓库 /sa-token-demo/sa-token-demo-quick-login 目录下,SpringBoot 3 示例在 /sa-token-demo/sa-token-demo-quick-login-sb3,可结合源码查看学习。Sa-Token 集成示例大全下载

四、测试访问

启动项目,使用浏览器访问:http://localhost:8081,首次访问时,由于处于未登录状态,会被强制进入登录页面

登录

使用默认账号:sa / 123456进行登录,会看到资源页面

登录

也可以通过 Http Basic 的方式直接进行认证(一般需要在专门的 API 测试工具下才能正常测试,浏览器会自动忽略 @ 之前的信息):

http://sa:123456@localhost:8081/

五、可配置信息

你可以在yml中添加如下配置 (所有配置都是可选的)

# Sa-Token-Quick-Login 配置
sa:
    # 登录账号
    name: sa
    # 登录密码
    pwd: 123456
    # 是否自动随机生成账号密码 (此项为true时, name与pwd失效)
    auto: false
    # 是否开启全局认证(关闭后将不再强行拦截)
    auth: true
    # 登录页标题
    title: Sa-Token 登录
    # 是否显示底部版权信息
    copr: true
    # 指定拦截路径
    # include: /**
    # 指定排除路径
    # exclude: /1.jpg
    # 将本地磁盘的某个路径作为静态资源开放
    # dir: file:E:\static

六、使用独立jar包运行

使用sa-token-quick-login只需引入一个依赖即可为系统注入登录模块,现在我们更进一步,将这个项目打成一个独立的jar包。

通过这个jar包,我们可以方便的部署任意静态网站!做到真正的零编码注入登录功能。

打包步骤

首先放上懒人链接:sa-quick-dist.jar,不想手动操作的同学可以直接在开源仓库下载打包后的jar文件

sa-token-demo 是独立的示例工程,sa-token-demo-quick-login 已包含在其中,直接进入该模块打包即可。

1、进入示例模块目录

cd sa-token-demo/sa-token-demo-quick-login

2、执行打包命令

mvn clean package

3、进入 target 文件夹,找到打包好的jar文件

sa-token-demo-quick-login-0.0.1-SNAPSHOT.jar

4、我们将其重命名为sa-quick-dist.jar,现在这个jar包就是我们的最终程序,我们在这个target目录直接进入cmd,执行如下命令启动jar包

java -jar sa-quick-dist.jar

5、测试访问,根据控制台输出提示,我们使用浏览器访问测试: http://localhost:8080

sa-quick-start

如果可以进入登录界面,则代表打包运行成功

当然仅仅运行成功还不够,下面我们演示一下如何使用这个jar包进行静态网站部署

七、所有功能示例

Case 1. 指定静态资源路径

java -jar sa-quick-dist.jar --sa.dir file:E:\www

使用dir参数指定E:\www目录作为资源目录进行部署 (现在我们可以通过浏览器访问E:\www目录下的文件了!)

Case 2. 指定登录名与密码

java -jar sa-quick-dist.jar --sa.name=zhang --sa.pwd=zhang123

现在,默认的账号sa/123456将被废弃,而是使用zhang/zhang123进行账号校验

Case 3. 指定其自动生成账号密码

java -jar sa-quick-dist.jar --sa.auto=true

每次启动时随机生成账号密码(会在启动成功时打印到控制台上)

Case 4. 指定登录页的标题

java -jar sa-quick-dist.jar --sa.title="XXX 系统登录"

Case 5. 关闭账号校验,仅作为静态资源部署使用

java -jar sa-quick-dist.jar --sa.auth=false

Case 6. 指定启动端口(默认8080)

java -jar sa-quick-dist.jar --server.port=80

注:所有参数可组合使用

八、使用SpringBoot默认资源路径

SpringBoot默认开放了一些路径作为资源目录,比如classpath:/static/,
怎么使用呢?我们只需要在jar包同目录创建一个\static文件夹,将静态资源文件复制到此目录下,然后启动jar包即可访问

同时,我们还可以在jar包同目录创建yml配置文件,来覆盖jar包内的yml配置,如下图所示:

sa-quick-case.png

例如如上目录中/static中有一个1.jpg文件,我们启动jar包后访问http://localhost:8080/1.jpg即可查看到此文件,这是Springboot自带的功能,在此不再赘述


参考资料

相关文章
|
安全 Java 关系型数据库
《阿里巴巴Java开发手册(终极版)》电子版下载地址
《阿里巴巴Java开发手册》(终极版)从Java开发者的视角出发,内容涵盖编程规约、异常日志、单元测试、安全规约、工程结构、MySQL数据库六个维度。 本手册自发布以来,多次迭代,阅读量数以百万计,可称为Java开发者的必读手册。通过阅读本书,开发者同学可以系统地学习到如何在编程过程中高效协作、提升程序的交付质量、以及提升代码内容的创造性和优雅性。
1959 0
《阿里巴巴Java开发手册(终极版)》电子版下载地址
|
2月前
|
Dubbo 安全 Java
别人绕过我的网关直接调用资源服务怎么办?使用 Sa-Token 解决:网关转发鉴权、RPC调用鉴权
微服务子服务通常不能被外网直连,需经网关转发才算合法请求。若有人绕过网关直调资源服务会怎样?本文用 Sa-Token 讲清网关转发鉴权与 RPC 调用鉴权,堵住「绕过网关」缺口,加固内网服务边界安全,适合已有网关但仍担心直连风险的团队,文内含示例,可直接对照实践。
别人绕过我的网关直接调用资源服务怎么办?使用 Sa-Token 解决:网关转发鉴权、RPC调用鉴权
|
2月前
|
JSON 安全 Java
Sa-Token v1.46.0 发布 🚀,来看看有没有令你心动的功能!
Sa-Token 是一款开源免费的轻量级 Java 权限认证框架,支持登录/权限认证、单点登录、OAuth2.0及微服务网关鉴权。v1.46.0 版本新增 Fory JSON、RestClient、独立 Redisson 等插件,修复多处安全漏洞与兼容性问题,全面提升安全性与扩展性。
Sa-Token v1.46.0 发布 🚀,来看看有没有令你心动的功能!
|
2月前
|
域名解析 弹性计算 安全
阿里云服务器特惠:轻量38元起,经济型/u1/u2i热门实例优惠,高性价比之选
本文面向预算有限、性能需求适中的阿里云个人新用户,梳理了2026年活动中高性价比的三类主力云服务器选型:轻量应用服务器、经济型e实例与通用算力型u1/u2i实例,覆盖2核2G到8核16G主流配置。文中详细拆解了各实例的适用场景、核心性能优势与最新活动价,其中轻量应用服务器2核2G低至38元/年,经济型e实例2核2G99元/年,通用算力型u1实例2核4G企业专享价199元/年,同时补充了优惠券叠加抵扣的省钱技巧,也顺带提及更高性能的九代企业级ECS实例,帮助个人用户快速完成适配自身需求的高性价比选购。
阿里云服务器特惠:轻量38元起,经济型/u1/u2i热门实例优惠,高性价比之选
|
2月前
|
存储 人工智能 机器人
睿呼宝深度解析|基于通义千问的 AI 外呼数字员工,只为有效通话付费,企业成本降至人工 1/5
阿里云睿呼宝是基于通义千问大模型的AI外呼数字员工,具备真人级语音交互、意图与情绪双重识别能力;创新“有效通话”计费(≤15秒不计费),覆盖线索清洗、催收、回访等五大场景,自动打标、同步CRM,全链路合规留痕,助力外呼从成本中心升级为增长引擎。
|
6月前
|
弹性计算 数据可视化
阿里云服务器管理控制台(后台)在哪登录?统一阿里云后台链接入口整理,一键直达
阿里云服务器管理控制台是ECS与轻量应用服务器的统一可视化后台,支持重启、远程连接、重装系统等操作。主入口为控制台首页(home.console.aliyun.com),亦可直连ECS官网:https://t.aliyun.com/U/AZBUsA 或轻量官网:https://t.aliyun.com/U/dwftch
2486 8
|
4月前
|
存储 人工智能 弹性计算
2026年阿里云618大促「AI加速季,智惠生产力」活动详解
2026年阿里云以「AI加速季,智惠生产力」为主题开启618年度大促,活动周期锁定6月1日至6月30日,整月全周期开放各类限时秒杀、长效特惠、企业算力补贴、新人券包、AI产品专项优惠,覆盖轻量应用服务器、ECS云主机、GPU算力、云数据库、存储CD、建站服务全品类。依托官方5亿元专项算力补贴加持,新用户入门机型低至38元/年,新老通用ECS经济型机型99元/年起,企业专属u1实例199元/年,叠加满减券、迁补贴后综合折扣低至0.8折。本文结合官方活动规则、机型定价、全渠道参与入口、优惠叠加逻辑、实操部署脚本、避坑要点全方位拆解,帮助个人站长、开发者、中小微企业低成本选购适配云资源,全文从活动周
1236 0
|
存储 Java 数据库连接
mybatis精讲(三)--标签及TypeHandler使用
mybatis精讲(三)--标签及TypeHandler使用
|
XML Java 关系型数据库
程序与技术分享:activity(工作流)初步学习记录
程序与技术分享:activity(工作流)初步学习记录
374 0