using HoneyBox.Model.Models.Auth;
namespace HoneyBox.Core.Interfaces;
///
/// 认证服务接口
///
public interface IAuthService
{
///
/// 微信小程序登录
///
/// 微信授权code
/// 推荐人ID
/// 点击ID
/// 登录结果
Task WechatMiniProgramLoginAsync(string code, int? pid, string? clickId);
///
/// 手机号验证码登录
///
/// 手机号
/// 短信验证码
/// 推荐人ID
/// 点击ID
/// 登录结果
Task MobileLoginAsync(string mobile, string code, int? pid, string? clickId);
///
/// 验证码绑定手机号
///
/// 用户ID
/// 手机号
/// 短信验证码
/// 绑定结果
Task BindMobileAsync(int userId, string mobile, string code);
///
/// 微信授权绑定手机号
///
/// 用户ID
/// 微信授权code
/// 绑定结果
Task WechatBindMobileAsync(int userId, string wechatCode);
///
/// 微信手机号快速验证登录
///
/// 微信手机号授权code(getPhoneNumber返回)
/// 微信登录code(uni.login返回,用于获取openid)
/// 推荐人ID
/// 登录结果
Task WechatPhoneLoginAsync(string phoneCode, string? loginCode, int? pid);
///
/// 记录登录信息
///
/// 用户ID
/// 设备类型
/// 设备信息
/// 记录登录响应
Task RecordLoginAsync(int userId, string? device, string? deviceInfo);
///
/// 账号注销
///
/// 用户ID
/// 类型:0=注销 1=取消注销
/// 异步任务
Task LogOffAsync(int userId, int type);
///
/// H5绑定手机号(无需验证码)
///
/// 用户ID
/// 手机号
/// 绑定结果
Task BindMobileH5Async(int userId, string mobile);
#region Refresh Token 相关方法
///
/// 刷新 Token
///
/// Refresh Token
/// 客户端 IP 地址
/// 刷新结果,包含新的 Access Token 和 Refresh Token
Task RefreshTokenAsync(string refreshToken, string? ipAddress);
///
/// 撤销 Token
///
/// 要撤销的 Refresh Token
/// 客户端 IP 地址
/// 异步任务
Task RevokeTokenAsync(string refreshToken, string? ipAddress);
///
/// 撤销用户的所有 Token
///
/// 用户ID
/// 客户端 IP 地址
/// 异步任务
Task RevokeAllUserTokensAsync(int userId, string? ipAddress);
#endregion
}