package com.webgame.webgamebackend.common.auth; import cn.dev33.satoken.stp.StpUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; /** * Sa-Token 认证提供者实现 *

* 将 Sa-Token 的 StpUtil 静态方法封装为 AuthenticationProvider 接口, * 是项目中唯一直接依赖 Sa-Token 的业务代码之外的文件。 */ @Slf4j @Component public class SaTokenAuthenticationProvider implements AuthenticationProvider { @Override public String login(Object userId) { StpUtil.login(userId); String token = StpUtil.getTokenValue(); log.debug("用户登录成功: userId={}", userId); return token; } @Override public void logout() { StpUtil.logout(); } @Override public String getCurrentUserId() { return StpUtil.getLoginIdAsString(); } @Override public String getUserIdByToken(String token) { Object loginId = StpUtil.getLoginIdByToken(token); return loginId != null ? loginId.toString() : null; } @Override public String getCurrentToken() { return StpUtil.getTokenValue(); } @Override public void setContextToken(String token, int timeout) { StpUtil.setTokenValue(token, timeout); } }