package com.lantone.common.service;

import com.lantone.common.dto.JwtStore;

import java.util.List;

/**
 * @Description: Token验证类
 * @author: gaodm
 * @time: 2018/10/29 13:35
 */
public interface SysTokenService {

    /**
     * 创建token
     *
     * @param token 用户token
     * @return
     */
    Boolean createToken(JwtStore token);

    /**
     * 验证token是否有效
     *
     * @param token 待验证的token
     * @param type  1:accessToken,2:refreshToken
     * @return
     */
    Boolean verifyToken(String token, Integer type);

    /**
     * 删除用户token
     *
     * @param userId 用户ID
     * @return 删除是否成功
     */
    Boolean deleteToken(String userId);

    /**
     * 批量删除用户token
     *
     * @param userIds 用户列表
     * @return 删除是否成功
     */
    Boolean deleteBatchToken(List<Long> userIds);

    /**
     * 获取用户jwt
     *
     * @param userId 用户ID
     * @return jwt信息
     */
    JwtStore getToken(String userId);

    String getUserIDByToken(String token);
}
