package com.sptg.common.security.service;

import com.sptg.common.core.beans.UserBean;

import java.util.List;

/**
 * title: SecurityServiceInterface
 * package: com.sptg.common.security.security
 * description: 安全接口
 *
 *                  
 *                 
 */
public interface SecurityServiceInterface<Account extends UserBean> {

    /**
     * 功能描述: 创建用户令牌
     * @param account 用户信息
     *                  
     * @return String 用户令牌
     *                       
     */
    String createUserToken(Account account);

    /**
     * 功能描述: 获取登陆用户信息
     *                  
     *                       
     * @return UserBean
     */
    Account getOnLineUser();

    /**
     * 功能描述:删除用户令牌
     *                  
     *                       
     */
    void removeUserToken();

    /**
     * 功能描述: 是否已登陆
     * @return true 已登陆,false 未登陆
     *                  
     *                       
     */
    boolean isLogin();

    /**
     * 功能描述: 获取所有的登陆用户
     * @return List<Account>
     *                  
     *                       
     */
    List<Account> getOnLineUserList();

    /**
     * 功能描述: 强制退出
     * @param token 用户令牌
     *                  
     *                       
     */
    void removeUserToken(String token);

    /**
     * 功能描述: 更新账号
     * @param account 账号
     *                  
     *                       
     */
    void updateAccount(Account account);
}
