Files
webgame-backend/src/main/java/com/webgame/webgamebackend/common/auth/SaTokenAuthenticationProvider.java
2026-06-24 12:17:09 +08:00

51 lines
1.3 KiB
Java

package com.webgame.webgamebackend.common.auth;
import cn.dev33.satoken.stp.StpUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
/**
* Sa-Token 认证提供者实现
* <p>
* 将 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);
}
}