package com.vci.web.service; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.RequestClientInfo; import com.vci.starter.web.pagemodel.SessionInfo; import com.vci.starter.web.pagemodel.TokenVO; import com.vci.web.bo.LoginResultBO; import com.vci.web.dto.LoginUserDTO; /** * 登录和退出服务 * @author weidy * @date 2020/1/29 */ public interface LoginServiceI { /** * 登录 * @param userDTO 登录信息 * @param clientInfo 请求的客户端的信息 * @return 登录的结果对象 * @throws VciBaseException 登录失败的时候抛出异常 */ LoginResultBO login(LoginUserDTO userDTO, RequestClientInfo clientInfo) throws VciBaseException; /** * 单点登录 * @param userDTO 登录信息 * @param clientInfo 请求的客户端的信息 * @return 登录的结果对象 * @throws VciBaseException 登录失败的时候抛出异常 */ LoginResultBO singleLogin(LoginUserDTO userDTO, RequestClientInfo clientInfo) throws VciBaseException; /** * 退出系统 * @param userToken 用户的许可码 * @throws VciBaseException 删除会话信息出错的时候会抛出异常 */ void logout(String userToken) throws VciBaseException; /** * 刷新token * @param sessionInfo session的信息 */ void refreshToken(SessionInfo sessionInfo); /** * 刷新token * @param key token在redis中的key * @param sessionInfo session的信息 */ void refreshToken(String key, SessionInfo sessionInfo); /** * 创建许可的信息 * @param sessionInfo session的信息 * @return 许可信息 */ TokenVO createToken(SessionInfo sessionInfo) ; /** * 创建许可的信息 * @param key token在redis中的key。 * @param sessionInfo session的信息 * @return 许可信息 */ TokenVO createToken(String key, SessionInfo sessionInfo) ; }