package com.hzs.system.tools.service;

import com.hzs.common.core.constant.CacheConstants;

/**
 * 解决系统幂等性的公共方法
 * @author: sui q
 * @time: 2022/8/27 13:46
 * @description:
 * @classname: IIdempotentService
 * @package_name: com.hzs.system.tools.service
 */
public interface IIdempotentService {

    /**
     * 保证幂等性token失效时间
     */
    long EXPIRE_TIME = CacheConstants.LOGIN_TOKEN_EXPIRATION;

    /**
     * 生成唯一的token
    * @Description:
    * @return: String
    * @throws
    * @Author: sui q
    * @Date: 2022/8/27 13:47
    */
    String generateToken();

    /**
     * 验证token，是否存在系统中
    * @Description:
     * @param token
    * @return: Boolean
    * @throws
    * @Author: sui q
    * @Date: 2022/8/27 13:48
    */
    Boolean validateToken(String token);

    /**
     * 刷新token
    * @Description:
     * @param token
    * @return: void
    * @throws
    * @Author: sui q
    * @Date: 2022/8/27 13:48
    */
    void refreshToken(String token);
}
