云
5 天以前 d0cf2cb2c352bdeb146aad2bb57ba7d39cef3bbd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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)); }
}