Springboot 权限认证框架 -- SA-Token 单点登录
在Spring Boot项目中使用Sa-Token实现单点登录(SSO)的示例代码如下:
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
@RestController
public class SsoController {
// 登录接口
@GetMapping("/doLogin")
public Object doLogin() {
// 获取当前请求的request对象
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
// 以下为Sa-Token的登录逻辑
StpUtil.login(10001); // 假设用户编号为10001的用户登录
// 获取当前登录用户的token
String token = StpUtil.getTokenValue();
// 返回登录成功信息和token
Map<String, Object> result = new HashMap<>();
result.put("code", 200);
result.put("msg", "登录成功");
result.put("token", token);
return result;
}
// 登出接口
@GetMapping("/logout")
public Object logout() {
// 注销当前会话
StpUtil.logout();
// 返回登出成功信息
return "登出成功";
}
// 获取当前登录用户信息接口
@GetMapping("/getLoginInfo")
public Object getLoginInfo() {
// 获取当前登录用户信息
Map<String, Object> userInfo = StpUtil.getLoginInfo();
// 返回用户信息
return userInfo;
}
}
在这个示例中,我们定义了三个接口:doLogin
用于登录,logout
用于登出,getLoginInfo
用于获取当前登录用户的信息。在登录接口中,我们使用了Sa-Token提供的 StpUtil.login
方法来标记当前用户为登录状态,并获取了对应的token。在登出接口中,我们使用了 StpUtil.logout
来注销当前会话。获取用户信息的接口直接使用了Sa-Token提供的 StpUtil.getLoginInfo
方法来获取用户信息。
这个示例展示了如何在Spring Boot项目中使用Sa-Token来实现单点登录的基本功能。在实际应用中,你需要根据自己的需求来扩展和完善这些接口。
评论已关闭