package cn.iocoder.yudao.module.system.service.auth;
|
|
import cn.hutool.crypto.digest.DigestUtil;
|
import jakarta.annotation.Resource;
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
import org.springframework.stereotype.Service;
|
import java.time.Duration;
|
|
/** 绑定到本次企业微信扫码登录令牌的短期密码设置授权。 */
|
@Service
|
public class WxcpPasswordSetupGrant {
|
@Resource private StringRedisTemplate redis;
|
private String key(String token) { return "wxcp:password-setup:" + DigestUtil.sha256Hex(token); }
|
public void issue(String token, Long userId) {
|
redis.opsForValue().set(key(token), userId.toString(), Duration.ofMinutes(10));
|
}
|
public boolean valid(String token, Long userId) {
|
return token != null && userId != null && userId.toString().equals(redis.opsForValue().get(key(token)));
|
}
|
public void revoke(String token) { redis.delete(key(token)); }
|
}
|