package com.sonic.bear.service;

import java.util.Optional;

/**
 * @Author code
 * @Description 用户Token存在性验证缓存，防止穿透
 * @Date 2022/11/14 19:02
 * @Version 1.0
 */
public interface SessionExistVerifyCacheService {

    /**
     * 获取缓存数据
     * @param token
     * @return
     */
    Optional<String> get(String token);

    /**
     * 校验当前访问的token是否存在
     * @param token
     * @return
     */
    boolean exist(String token);

    /**
     * 设置数据到内存缓存和redis缓存
     * @param token
     * @param expTime 过期时间（单位：秒 s）
     */
    void cache(String token, Long expTime);

    /**
     * 初始化数据
     * @param token
     * @param expTime
     */
    void initCache(String token, Long expTime);

    /**
     * 清理掉缓存的存在的token数据
     * @param token
     */
    void clearCache(String token);

}
