package cn.meowrain.aioj.backend.auth.service;

import cn.meowrain.aioj.backend.auth.dto.req.UserLoginRequestDTO;
import cn.meowrain.aioj.backend.auth.dto.resp.UserAuthRespDTO;
import cn.meowrain.aioj.backend.auth.dto.resp.UserLoginResponseDTO;
import cn.meowrain.aioj.backend.framework.core.web.Result;

public interface AuthService {

	/**
	 * 用户登录
	 * @param request {@link UserLoginRequestDTO}
	 * @return {@link UserLoginResponseDTO}
	 */
	UserLoginResponseDTO userLogin(UserLoginRequestDTO request);

	/**
	 * 刷新token
	 * @param refreshToken
	 * @return
	 */
	UserLoginResponseDTO refreshToken(String refreshToken);

	/**
	 * 验证token的有效性
	 * @param accessToken 访问令牌
	 * @return token是否有效
	 */
	Boolean validateToken(String accessToken);


	/**
	 * 根据accessToken获取用户信息
	 * @return {@link Result<UserAuthRespDTO>}
	 */
	UserAuthRespDTO getUserInfo();
}
