package com.ruoyi.interfaces.service;

import com.ruoyi.interfaces.domain.PtApp;

import javax.servlet.http.HttpServletRequest;
import java.util.Map;

/**
 * token验证处理
 *
 * @author ruoyi
 */
public interface TokenService {

    /**
     * 获取用户身份信息
     *
     * @return 用户信息
     */
    PtApp getAppId(HttpServletRequest request);

    /**
     * 设置用户身份信息
     */
    void setPtApp(PtApp ptApp);

    /**
     * 删除用户身份信息
     */
    void delPtApp(String token);

    /**
     * 创建令牌
     *
     * @param ptApp 用户信息
     * @return 令牌
     */
    public String createToken(PtApp ptApp);

    /**
     * 验证令牌有效期，相差不足20分钟，自动刷新缓存
     *
     * @param ptApp
     * @return 令牌
     */
    void verifyToken(PtApp ptApp);

    /**
     * 刷新令牌有效期
     *
     * @param ptApp 登录信息
     */
    void refreshToken(PtApp ptApp);

    Map<String, Object> token(String grantType, String appId, String secret);

    String getAppIdFromToken(String token);
}
