package ink.wgink.interfaces.manager;

import ink.wgink.pojo.app.AppToken;
import ink.wgink.pojo.app.AppTokenUser;

import java.util.List;

/**
 * @ClassName: IRedisAppTokenManager
 * @Description: redis app token 管理
 * @Author: wanggeng
 * @Date: 2021/11/29 4:30 下午
 * @Version: 1.0
 */
public interface IAppTokenService {

    String TOKEN_HASH_KEY = "app:tokens:";

    /**
     * 获取token
     *
     * @param token
     * @return
     */
    AppToken getToken(String token);

    /**
     * 添加token
     *
     * @param token
     * @param appTokenTypeEnum
     * @param appTokenUser
     */
    void addToken(String token, AppToken.AppTokenTypeEnum appTokenTypeEnum, AppTokenUser appTokenUser);

    /**
     * 获取当前在线的用户列表
     *
     * @return
     */
    List<AppTokenUser> listCurrentUsers();

    /**
     * 清空超时token
     */
    void clearTimeoutToken();
}
