HaniBlindBox/server/HoneyBox/src/HoneyBox.Core/Interfaces/IAuthService.cs

108 lines
3.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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