package org.dromara.common.social.utils; import lombok.AllArgsConstructor; import me.zhyd.oauth.cache.AuthStateCache; import org.dromara.common.core.constant.GlobalConstants; import org.dromara.common.redis.utils.RedisUtils; import java.time.Duration; /** * 授权状态缓存 */ @AllArgsConstructor public class AuthRedisStateCache implements AuthStateCache { /** * 存入缓存 * * @param key 缓存key * @param value 缓存内容 */ @Override public void cache(String key, String value) { // 授权超时时间 默认三分钟 RedisUtils.setCacheObject(GlobalConstants.SOCIAL_AUTH_CODE_KEY + key, value, Duration.ofMinutes(3)); } /** * 存入缓存 * * @param key 缓存key * @param value 缓存内容 * @param timeout 指定缓存过期时间(毫秒) */ @Override public void cache(String key, String value, long timeout) { RedisUtils.setCacheObject(GlobalConstants.SOCIAL_AUTH_CODE_KEY + key, value, Duration.ofMillis(timeout)); } /** * 获取缓存内容 * * @param key 缓存key * @return 缓存内容 */ @Override public String get(String key) { return RedisUtils.getCacheObject(GlobalConstants.SOCIAL_AUTH_CODE_KEY + key); } /** * 是否存在key,如果对应key的value值已过期,也返回false * * @param key 缓存key * @return true:存在key,并且value没过期;false:key不存在或者已过期 */ @Override public boolean containsKey(String key) { return RedisUtils.hasKey(GlobalConstants.SOCIAL_AUTH_CODE_KEY + key); } }