作为一个又菜又爱玩的程序猴(自我感觉离猿总差一点点),GitHub拥有7.7k的star项目,自然是要找时间试试的。
项目图
第一次看到这个项目的时候,是在gitee的GVP推荐中看到的,一直都没有时间深入的了解。最近可用于摸鱼的时间多了起来,简单看了下这个项目的文档,惊讶于文档的详细,是我喜欢的样子(中文文档),所以决定写两行代码试试。
先建一个基础springboot项目
基础项目
项目中仅包含spring-boot-starter、spring-boot-starter-test、spring-boot-starter-web
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.0.3.RELEASE</version>
</dependency>
随便给指定一个端口
server:
port: 9999
启动一下
没有问题,接下来在项目中引入Sa-Token依赖
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-spring-boot-starter</artifactId>
<version>1.28.0</version>
</dependency>
重启项目
引入成功
项目启动时打印出来了Sa-Token的内容,引入成功。
新建一个Controller,用来测试基本功能
package com.demo.satoken;
import cn.dev33.satoken.stp.StpUtil;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
("/user/")
public class UserController {
// 测试登录,浏览器访问: http://localhost:9999/user/doLogin?username=zhang&password=123456
("doLogin")
public String doLogin(String username, String password) {
// 此处仅作模拟示例,真实项目需要从数据库中查询数据进行比对
if("zhang".equals(username) && "123456".equals(password)) {
StpUtil.login(10001);
return "登录成功";
}
return "登录失败";
}
// 查询登录状态,浏览器访问: http://localhost:9999/user/isLogin
("isLogin")
public String isLogin() {
return "当前会话是否登录:" + StpUtil.isLogin();
}
}
再次重启项目
先在浏览器打开
http://localhost:9999/user/isLogin,查询一下登录状态
未登录
登录一下
登录
再次检查登录状态
登录成功
看得出来,比起Shiro、SpringSecurity这些被广泛使用的鉴权项目,这个项目的集成使用方式可以简单到令人发指。突然更有兴趣了,后续我会继续体验这个项目,有兴趣了解这个项目的请自行查看。
文档地址:http://sa-token.dev33.cn/
项目地址:
https://gitee.com/dromara/sa-token