168 lines
3.6 KiB
Java
168 lines
3.6 KiB
Java
package com.emotion.service;
|
|
|
|
import com.emotion.dto.request.LoginRequest;
|
|
import com.emotion.dto.request.RegisterRequest;
|
|
import com.emotion.dto.request.ResetPasswordRequest;
|
|
import com.emotion.dto.response.ResetPasswordResponse;
|
|
|
|
import com.emotion.dto.response.AuthResponse;
|
|
import com.emotion.dto.response.CaptchaResponse;
|
|
import com.emotion.dto.response.SmsCodeResponse;
|
|
import com.emotion.dto.response.UserInfoResponse;
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
/**
|
|
* 认证服务接口
|
|
*
|
|
* @author huazhongmin
|
|
* @date 2025-07-23
|
|
*/
|
|
public interface AuthService {
|
|
|
|
/**
|
|
* 用户登录
|
|
*
|
|
* @param request 登录请求
|
|
* @return 认证响应
|
|
*/
|
|
AuthResponse login(LoginRequest request);
|
|
|
|
/**
|
|
* 用户注册
|
|
*
|
|
* @param request 注册请求
|
|
* @return 认证响应
|
|
*/
|
|
/**
|
|
* 重置密码(手机号 + 验证码)
|
|
*
|
|
* @param request 重置密码请求
|
|
* @return 重置密码响应
|
|
*/
|
|
ResetPasswordResponse resetPassword(ResetPasswordRequest request);
|
|
|
|
AuthResponse register(RegisterRequest request);
|
|
|
|
/**
|
|
* 获取当前用户信息
|
|
*
|
|
* @param userId 用户ID
|
|
* @return 用户信息响应
|
|
*/
|
|
UserInfoResponse getCurrentUserInfo(String userId);
|
|
|
|
/**
|
|
* 生成验证码
|
|
*
|
|
* @return 验证码响应
|
|
*/
|
|
CaptchaResponse generateCaptcha();
|
|
|
|
/**
|
|
* 验证验证码
|
|
*
|
|
* @param captchaKey 验证码key
|
|
* @param captcha 验证码
|
|
* @return 是否验证成功
|
|
*/
|
|
boolean validateCaptcha(String captchaKey, String captcha);
|
|
|
|
/**
|
|
* 用户登出
|
|
*
|
|
* @param userId 用户ID
|
|
* @param token 访问令牌
|
|
* @return 是否登出成功
|
|
*/
|
|
boolean logout(String userId, String token);
|
|
|
|
/**
|
|
* 用户登出(通过请求)
|
|
*
|
|
* @param request HTTP请求
|
|
* @return 是否登出成功
|
|
*/
|
|
boolean logoutByToken(HttpServletRequest request);
|
|
|
|
/**
|
|
* 刷新访问令牌
|
|
*
|
|
* @param refreshToken 刷新令牌
|
|
* @return 新的认证响应
|
|
*/
|
|
AuthResponse refreshToken(String refreshToken);
|
|
|
|
/**
|
|
* 验证访问令牌
|
|
*
|
|
* @param request HTTP请求
|
|
* @return 是否有效
|
|
*/
|
|
boolean validateToken(HttpServletRequest request);
|
|
|
|
/**
|
|
* 验证访问令牌
|
|
*
|
|
* @param token 访问令牌
|
|
* @return 是否有效
|
|
*/
|
|
boolean validateToken(String token);
|
|
|
|
/**
|
|
* 从令牌中获取用户ID
|
|
*
|
|
* @param token 访问令牌
|
|
* @return 用户ID
|
|
*/
|
|
String getUserIdFromToken(String token);
|
|
|
|
/**
|
|
* 从令牌中获取用户名
|
|
*
|
|
* @param token 访问令牌
|
|
* @return 用户名
|
|
*/
|
|
String getUsernameFromToken(String token);
|
|
|
|
/**
|
|
* 检查账号是否存在
|
|
*
|
|
* @param account 账号
|
|
* @return 是否存在
|
|
*/
|
|
boolean existsByAccount(String account);
|
|
|
|
/**
|
|
* 检查邮箱是否存在
|
|
*
|
|
* @param email 邮箱
|
|
* @return 是否存在
|
|
*/
|
|
boolean existsByEmail(String email);
|
|
|
|
/**
|
|
* 检查手机号是否存在
|
|
*
|
|
* @param phone 手机号
|
|
* @return 是否存在
|
|
*/
|
|
boolean existsByPhone(String phone);
|
|
|
|
/**
|
|
* 发送短信验证码
|
|
*
|
|
* @param phone 手机号
|
|
* @return 短信验证码响应
|
|
*/
|
|
SmsCodeResponse sendSmsCode(String phone);
|
|
|
|
/**
|
|
* 验证短信验证码
|
|
*
|
|
* @param phone 手机号
|
|
* @param code 验证码
|
|
* @return 是否验证成功
|
|
*/
|
|
boolean validateSmsCode(String phone, String code);
|
|
} |